As far as I understand, a non-standard transaction can be mined in to a block (and this block will be accepted by all nodes), but nodes will not relay a non-standard transaction to other nodes.
Why is it that miners have the freedom to construct non-standard transactions, but everyone else is limited to standard transactions?
I've heard that limiting the types of transactions that get relayed is some form of protection (against unusual script types that could cause problems). However, if this is the reason, doesn't this just leave miners with the ability to perform an attack whilst leaving everyone else restricted?
I'm not against standard transactions. I'm just not sure how this situation came to be.