Ooh, an excuse for some calculus! That'll get 'em rolling in the aisles...

Thanks for pointing out typo, Jonathan - correction made.

On the F setting and G0, though - my comment was based on my experience with LinuxCNC, and I wonder if I have misremembered or LCNC works a little differently to Mach 3 (which seems from casual observation on this forum to be much more popular). If I type G0 commands into LCNC to move the machine "manually", my recollection is that it bitches if it has not seen a previous F setting in a G0 context. I tend to have to type something like "G0 X100 Y100 F1200". Once I've done that, I don't need the F parameter for subsequent G0 commands. In other words, it doesn't seem to default to the max machine speeds. The way you describe it makes much more sense and I wish it worked like that on my system but it doesn't seem to. I'll have to experiment - I might have missed something subtle.