I think it had to be crippled once it was there. Too much complexity. It should have been just the standard transaction types to begin with. (Though I would have liked a "user data" field for extensions)
There could still be standard scripts.
The current rule is that you have to justify why you need an opcode unlocked rather than unlocking it and seeing if anyone wants to use it.
I haven't put thought into this, but that does sound like it could have been an improvement. Is there a benefit to MAST over the current Pay to Script Hash concept?
It is potentially smaller. The scriptPubKey is always the exact same size.
If you have lots of if branches, you only need to send the one that is actually executed.