Soviel vorab: Die Programmierung von dem Teil ist geometrisch ziemlich anspruchsvoll.
1. Wenn man anfängt sich die beliebig möglichen Geometrien einer polygonalen Freiform zu überlegen und wie viele Möglichkeiten es gibt dort eine Schleifendämmung unterzubringen stellt man schnell fest, dass es
a) ziemlich viele Varianten gibt, wie man die Form mit Schleifen füllen kann und
b) dass man um eine Füllvorschrift zu definieren ziemlich viele abstrakte Parameter abfragen müsste.
2. Außerdem ist davon auszugehen, dass mehrere Polygone aneinandergereiht werden müssen. Dafür muss dann aber der Übergang/Anschluss stimmen. Für die Forderung gibt es aber nur einen halbwegs verlässlichen und befriedigenden Übergangspunkt: Und das ist die Schleifenkurve am Berührungspunkt zur Gesamtgeometrie.
Aus 2. resultiert, dass die "Schleifenbreite" ein Zielmaß ist, das angesichts der Gesamtlänge der Geometrie angenähert werden muss. Je kürzer das Element, desto größer die mögliche Abweichung. Man könnte nun die Schleifenlänge dynamisch halten, dadurch würden auch die "unschönen" Wellen entfallen, doch wo fängt man da an und wo hört man da auf (-> Parameter) und was, wenn es dann trotzdem nicht passt? Hier wurde dann der Kompromiss mit "gestauchten" Kreisen und am Ende mit Splines gemacht. Auch nicht immer schön, klar.
Aus 1. ergibt sich, dass jedes "Halbschleifenpaket" mit allen möglichen Außenkanten geschnitten und die Schleife darin eingepasst wird. Das funktioniert nicht immer optimal, aber so weit ich das mal vor 10 Jahren getestet habe und ich mich erinnern kann verlässt da außer in besonders feinteiligen (und damit zu kurzen) Polygonzügen nichts den Polygonkäfig.
Zum Zickzackproblem: Die Zickzacklinie war AFAIR gar nicht gefordert, sondern nur ein Abfallprodukt, denn ist die Schleife eingepasst, kann man auch stattdessen eine Zickzacklinie anlegen. Diese geht jeweils in die Scheitelpunkte der Schleifen. Allerdings dann IMMER bis an die Polygongrenze und nicht wie bei der Schleife auch mal ohne Berührung der Polygonkante. Das würde nämlich in vielen Situationen zu einer blöden Darstellung führen. Und dort passiert der Fehler den Achmed gepostet hat.
Long story short: Es ist, wie es ist. Es ist "by design". Könnte man auch anders machen, IMHO aber nicht unbedingt besser.
Stell mal in deinem Beispiel steigend/fallend auf fallend/steigend um.