Your right.
But, I can kinda see why it doesn't.
Your g-code should have a feedrate in it (F word). If it does, then that should NOT be scaled, as it should be a metric feedrate, since it's metric code.
If you're running code without a feedrate in it, then Mach3 assumes you're setting the feedrate correctly prior to running the code.
You can't scale the current feedrate, and not scale the feedrate in the code. So Mach is being consistent by not scaling the feedrate.
If your code changes (somewhere other than the start) from metric to Imperial, though, then the current feedrate will get scaled appropriately. So, if you're running in G21 and call an F1500, then call G20, then the feedrate will change to 59ipm.
Or, try this.
G90
G91.1
G20
F125
G0 X0 Y0
G1 X4 Y0
G21
M30