But then why would any non-flasher ever place a single order on these exchanges? Couldn't a boycott could solve this problem without any legislation --- they could just go to an alternative venue which wasn't selling them out in exchange for more fees?
--- Appendix: Bear with me while I think out loud so anyone can point out mistakes I'm making.
Time n-1, Order #0: Some seller posts an offer of size N > 5000 at $21.00. (It has to be $21.00, otherwise Order #2 would have nothing to buy at that price).
Time n, Order #1: Mutual fund sends buy 5000 "at market" (i.e. fill me at any price from here to the moon).
Time n+1, Order #2: Would-be flasher sends buy N at $21.00.
Time n+2, Order #3: Would-be flasher sends sell 5000 at $21.01 (and prays that no other flasher beats him to it).
Time n+3: Repeat from time n-1.
Under normal price-time priority, #1 matches #0, #2 matches #0 and becomes best bid, #3 doesn't match anything, and your new market is $21.00 / .01. The total traded volume is N. (The would-be flasher is now long N - 5000 and has to trade out at a loss of fees + stamp duty, so the first time around the total traded volume is 2N - 1, but that doesn't happen again: he either stops doing this shit or goes out of business).
With "flash trading", #2 matches #0 (despite #1 having time priority) and #3 matches #1 (despite not even being in the market at the time #1 arrived). The total traded volume is N + 5000. The exchange earns some extra fees, the flasher gets the arbitrage profits, the mutual fund gets screwed, and the sellers (#0) don't care either way because they were willing to trade at $21.00 all along. Weird.