Isn't that capability present in the protocol, just not implemented in the client?
It's disabled in the protocol, as well.
The network will still forget about the transaction eventually, though, so you can reverse it if you fiddle with wallet.dat to remove the transaction.