I'd rather not have this turn into a "lets get rid of the IsStandard() check"
I'm respecting Gavin's request that the linked thread not involve discussions relating to IsStandard.
[Having new standard transactions rather than disabling] will make it much easier for sites like blockexplorer to display them intelligently, and will generally make life happier for anybody writing tools that look at the blockchain.
Firstly, let me say that I'm very grateful that we have theymos' blockexplorer
to examine transaction history. I also have my own tools which even break when someone does something unusual but nonetheless "standard".
However, if blockexplorer had never been made, would Gavin dispense with IsStandard? I think not. Therefore, the risk of breaking blockexplorer is not the main reason.
Arbitrary non-standard transactions could be analyzed when they are redeemed in an improved blockexplorer by showing the evolution of the stack as the scriptPubKey+scriptSig concatenation are executed. The only thing that would be difficult to establish automatically is what scriptSig contents would be required to redeem a non-standard transaction.
I suspect that the main reason for keeping IsStandard is a justifiable feeling of anxiety that non-standard transactions may lead to unanticipated, unwelcome behaviour.
We need to look at technical solutions to allay this problem.
I suggest that non-standard transactions be allowed but (for the moment) take a very, very long time to confirm. This would be easy to implement and remove the "unpleasant urgent surprise" that a quickly confirming malicious non-standard transaction might bring.
Another solution requiring more engineering but minimising the potential damage still further would be for non-standard transactions not to be even incorporated into blocks until they had been manually checked out and approved in some fashion. This is just suggested to provoke discussion.