Rubens,
Sim - quando o programa lê uma palavra "F" dentro de um bloco de comando, este valor fica válido até o final do arquivo ou até a aparição de uma nova palavra "F"...
As palavras "F" só serão usadas quando dentro de um bloco que começe com um comando de interpolação linear (G01) ou interpolação circular (G02 ou G03).
Quando um bloco é iniciado com um comando "G00", a velocidade de avanço (ditada por "F") será ignorada, e o eixo (ou os eixos) envolvidos irão se mover na máxima velocidade possível (dentro do que foi informado nas configurações)
Sobre as melhorias no seu programa, outra possibilidade - supondo que seu programa trate as linhas recém criadas como vetores - seria a de poder "apagar" certas linhas, e "criar" novos vetores mais adequados a um caso...
Por exemplo, supondo que seu programa rastreie uma trilha, mas o desenho não está "de pé" como deveria estar, ou o algoritmo que controla esta variável não foi corretamente ajustado, o usuário poderia apagar um conjunto de linhas indesejadas e "redesenhar" um novo vetor no lugar...
Não sei se me fiz entender...