Why couldn't the-collective-we only revoke the double-spends (and subsequent txns that depended on them) ?
A hard-coded list of invalid txids wouldn't be hard to insert into the is-valid-transaction checks, and that along with a blockchain checkpoint would work just fine. Valid transactions on the bad chain would move to the new chain (actually, they'd already be on the non-attacker chain, since the miners on both sides of the block split would have included them).
Valid transactions on the bad chain would move to the new chain so long as no-one made a deliberate, malicious attempt to replace them. If they did all bets are off as far as I can tell. Newer transactions wouldn't be on both sides of the block split because all the miners would transition to mining the attackers' blockchain once they heard about it.
It's not fiat because, as you mentioned, people can choose to accept or reject the changes.
Rationally speaking, they can only reasonably go along with what the majority of big players choose. In particular if the exchanges or the pools choose one side, any Bitcoins on the other side are illiquid and essentially worthless. Worse still, any uncertainty as to which side will win is likely to cause a drop-off in mining power that would make additional double spends a lot easier.
It's not fiat because, Their wallets will be drained in any case. The hardcoded changes might return some of the coins.
The hardcoded changes would return coins to one side of the double-spend by taking them away from the other side. There's no guarantee that either set of coins would be in the hands of the attacker. (Technically the developers could confiscate arbitrary coins and hand them to whoever they want, but that opens up a whole bunch of cans of worms...) Automatically disabling transactions when a node detects a big rearrange would help reduce this risk though.