O problema poderia ser no código G gerado ou na sua CNC, como o código G anexado me parece correto para um "circulo perfeito", concluo pela 2ª opção.
Sendo na CNC, e pelo seu relato, nos pontos do círculo onde ocorre movimentação da CNC predominante nos eixos x e y, ou seja nas direções +x, -x, +y, e -y o diâmetro correto foi obtido. O erro (provavelmente máximo) no diâmetro ocorre nos pontos onde o movimento composto x e y é máximo, ou seja, a 45º em relação às direções x ou y. Nesses pontos, os movimentos dos eixos estão sendo de certo modo "comparados", me parece que um é melhor que o outro ou então ambos tem alguma deficiência mínima e um deles é um pouco pior. Nessas diagonais (45º), o erro é de 4mm em 600mm, ou seja: 0,67%. Nas direções do x e y o erro é "zero".
Eu acho que podem ser algumas coisas, por exemplo, folga na movimentação ou então falta de rigidez (flexibilidade) na estrutura associada a atrito na movimentação em ambos ou num dos eixos x e y poderiam ocasionar esse tipo de erro. Ou seja, uma folga "demasiada" num dos eixos poderia gerar o erro.
Já tentou realizar o mesmo trabalho em velocidade menor? (menores velocidades => menores acelerações e esforços => menores deformações).
Prenda uma caneta ao eixo z, efetue a mesma movimentação, meça o círculo desenhado e informe os resultados.
Qual o tipo de guia está sendo usado nos eixos?
Poderia postar fotos da máquina?