Du hast (unten) einen Kreis programmiert, der von der Steuerung auch abgefahren wird, d.h. die Werkzeugradiuskorrektur sorgt dafür, dass das Werkzeug den Kreis immer mit einem Punkt an der unteren Kante des Werkzeugs berührt. Das ist unabhängig von der jeweils aktuellen Werkzeugorientierung. Deshalb entsteht hier
exakt der Kreis, den du erwartest.
Bei anderen Z-Positionen entsteht nur dann Kreise, wenn die Werkzeugorientierung zur Position passt, d.h. dass Werkzeug muss so geführt werden, dass es sich auf einem Kegelmantel bewegt.
Das ist hier aber nicht der Fall. Die Orientierungen des Werkzeugs passen jeweils an den vier Quadrantenübergängen (nehme ich mal an, ich habe es nicht nachgerechnet). Dazwischen sind die Orientierungen mehr oder weniger falsch (die Orientierung interpoliert auf einem Großkreis, müsste aber so interpolieren, dass ein Kegelmantel entsteht).
Du kannst das Ergebnis verbessern, indem du mehr Zwischenpunkte setzt, d.h. die die richtigen Orientierungen berechnest. Diese Annäherung durch mehr Stützpunkte im Orientierungsraum etwa dem Vorgehen, wenn man in einer Ebene einen Kreis erzeugen will, indem man ihn durch kurze Geradenstücke approximiert.
Der bessere Weg ist aber selbstverständlich - wie oben vorgeschlagen - die Kegelmantelinterpolation zu verwenden. Dann nimmt dir die Steuerung die Berechnung der Zwischenorientierungen ab, und die Fläche, die dadurch entsteht, ist dann auch keine Näherung mehr, sondern ein exakter Kegelmantel.