I'm undecided about whether I think front running is fair
This is a red flag that no one here should be asking you for moral advice.
Flash trading: Joe wants to buy shares at price 10 or better and places an order on NYSE. The best ask on ARCA is 9.99, but the best ask on NYSE is 10. NYSE gives me the option of filling Joe's order at price 9.99 (rather than routing the trade to ARCA), saving Joe the cost of routing.
Flash trading and front running are just not the same thing. Flash trading only happens to traders who chose for their orders to be flashed. All flash trading does is moves the trade from ARCA to NYSE.
You see shares costing 9.80, so you buy it up quickly, and sell it to Joe for 10, making a profit of 0.20 per share while driving up prices for Joe.
That is front running.
A flash trade gives Goldman the opportunity to fill Joe's order at the NBBO price before it is routed to another exchange. It does absolutely nothing else. The person receiving the flash is even prohibited from making offers on that security on other exchanges for a few milliseconds after receiving the flash.
This gives Goldman an advantage over other high frequency traders since it gives Goldman a higher fill rate, which is definitely unfair.
If Joe wanted to fill the order himself on a darkpool, he would not have asked the exchange to flash his order.
[1] I'm undecided about whether I think front running is fair, but flash orders are a separate issue.