Wenn ich einen Renderer schreiben würde (und wie mir scheint, macht Mapnik es auch so), würde ich Multipolygone, ihre Ringe und sonstige Flächen nach der Größe (nämlich ihrer bounding box) priorisieren: Die kleinere Fläche hat die höhere Priorität und wird “darüber” (d.h. nachher) gezeichnet. Kompliziert wird es erst bei semitransparententen Flächen. Man kann sich einiges Kopfweh ersparen, indem man nichts eigentlich semitransparent rendert, sondern bestenfalls schraffieriert, punktiert, schummert etc. Dann ist die Reihenfolge klar: Erst werden die Vollflächen nach ihrer Größe priorisiert gezeichnet, dann kommt die Schraffur, dann die Punktierung.

Die Anzahl der Multipolygonringe ist egal, das ist ein linearer Aufwand. Mehr macht die Anzahl der Nodes aus, weil jedes Polygon in kleine Rechtecke (bzw. rechtwinkelige Dreiecke) zerlegt werden muss (zumindest würde ich das so machen). Jeder Node fügt eine zusätzliche Zeile und Spalte hinzu. Der Aufwand ist also quadratisch. Vielleicht haben die Renderer-Leute einen Algorithmus mit O(N*ld N) gefunden, O(N) kann ich mir nicht vorstellen.

Das Problem der Multipolygone sehe ich nur beim Editieren. Erstens wegen der Fehleranfälligkeit, zweitens wegen der Unübersichtlichkeit. Wenn man in der im Editor angezeigten Fläche hundert Relationen hat, blickt man kaum mehr durch.

Das ist nicht wegen dem Rendering, denn lineare Objekte werden sowieso nach (d.h. über) flächigen gezeichnet (Schraffur, Punktierung und Schummerung vielleicht ausgenommen). Soweit ich die Streifenfreilasser verstehe, machen sie das aus einem anderen Grund, nämlich weil sie meinen die Realität millimetergenau abbilden zu müssen.

Das finde ich unnötig kompliziert und viral. Was ist überhaupt der Bayrische Wald - laut Wikipedia ist das gar kein Wald, sondern ein Gebirge. Für Gebirge gibt es noch kein gültiges Tagging-Schema.