That looks very interesting. But is effectively blocking old clients from seeing transactions really safe? After all, such transactions are still confirmed on the new chain. A person might try to send a similar transaction several times, perhaps with increasing fees in an attempt to get it to confirm and end up paying someone several times.

Maybe we could require the tx version number to be increased as well so transactions sent from old clients would never confirm? Perhaps your code already includes this idea, I need to look at it more closely.