Thanks Craig for your post + taking the time.
The discussion is over G95/G99 (feed per revolution) not G33/G76 (threading cycles)
from what I've read on various forums of misinformation is that G95/G99 can be done one of two ways broadlly.
The easy way (1) is:
No spindle speed feedback, and feedback is set (statically) based upon the programmed / commanded spindle speed (S*********x)
eg
G95 (feed per revolution)
X100 S10000 F0.01
which translates to 0.01 units / revolution X 10,000 revolutions / min = 100 units / min.
hence it would be exactly the same as specifying
G94 (feed per min)
X100 S10000 F100
There is no gain with this sort of implementation really except you get a little less calculation to perform than you would on a lathe for example or even maybe a mill where you may multiply the feed/rev X the no of cutter teeth to get your corrected feedrate.
The more difficult way (2):
With spindle feedback
This basically will slow down or speed up the feedrate based upon the ACTUAL spindle speed.
It does not adjust the spindle speed at all (forget PID loops). All it does is dynamically, during the motion it will adjust the ACTUAL feedrate relative to the ACTUAL spindle speed.
The feedback does not need to be that great / fast given the change in spindle speed is likely to be small (its not going to go from 10,000 rpm to 1,000 rpm or you'll probably break the tool / its indicated that you've broken the tool).... but what it may do is go from 10,000 to 9 or 8,000 and then back up to 10,000 as PID kicks in (seperatly looped / controlled), and up to 11 or 12,000 when the cut becomes easy before PID kicks in to slow it down.
so when the spindle is doing 8,000 rpm, its a good time to backoff on the feedrate a little (- < 20% from the target feedrate) and when its doing 12,000 rpm it would be a good time to bump the feedrate up a little (+ < 20% from the target feedrate) to compensate for the cut load.
PID is normally programmed under no load conditions from my experience, so under load when the cutter begins to cut or when the load reduces when the cutter comes out of the cut or is doing a zig-zag pocket and not a contour the "P" + "D" (proportional + derivative (if used) factors) will be too low and the "I" (integral factor) will be too high.
I did ask Andy at Warp9 yesterday and was given this reponse
I talked with one of the Mach4 developers, and he said:
All we need is spindle feedback. Then Mach does it all. 
There are a few discussion threads on G95/G99, here is one
https://www.practicalmachinist.com/vb/cnc-machining/milling-using-feed-per-revolution-g95-good-265234/Apparently G95 is the default setting for Mazak machining centers, never used one {or ever likely to}, but its interesting all he same, another way to skin that same cat
