Exchange A: 25 @ 49.99 Exchange B: 20 @ 49.98 Exchange C: 60 @ 49.97
You expect your order to get filled with all shares from C and B and just 20 from A at the highest price, the problem is Exchange A is closest to you, B is 50 miles away, and C is 800 miles away in Chicago.
The HFT bot sees your order arriving at Exchange A, since they have a fastest link to B and C, they buy the orders there and put them on sell to you at $49.99 just a few milliseconds before your order arrives.
If you really wanted to pay $49.97 then you should have put in that order instead.
Either way, this problem can be solved much more simply by the application of some simple order timing algorithms than by regulations attempting, in effect, to repeal the speed of light.
Um, how do they do that, exactly? The major equity exchanges are all FIFO on every tick price. If you put a limit order in for $49.99 before somebody else, and an offer crosses your bid, you'll get filled before they do, period.