Peter Todd came up with a simple and elegant solution to disincentivizing blockchain rewinding.
If every transaction includes an nLockTime that's the current/next block, its fees can't be claimed without fully catching up to the blockchain. This means that rewinding 10 blocks in order to get all their fees requires re-mining all 10 blocks.
http://sourceforge.net/p/bitcoin/mailman/message/30523958/