Since the scaling discussion is rolling over here, I would like everyone to consider this data -
This problem is far worse if blocks were 8MB: an 8MB transaction with 22,500 inputs and 3.95MB of outputs takes over 11 minutes to hash. If you can mine one of those, you can keep competitors off your heels forever, and own the bitcoin network
Well, probably not. But thered be a lot of emergency patching, forking and screaming
And this assuming the initial optimizations completed to speed up Verification!
This means that If we hardforked a 2MB MaxBlockSize increase on the main tree and we softforked/hardforked in SepSig, we would essentially have up to a 8MB limit (3.5MB to 8MB) in which an attack vector could be opened up with heavy input and multisig tx which would crash nodes.
These are edge cases... but edge cases are what attackers use to disrupt the network.
Remember we have to design code to expect the worst and hostile intent, especially for bitcoin which has many extremely powerful adversaries. This is why I have a nuanced view of simultaneously supporting multiple implementations, the conservative approach from the core devs, and eventually increasing the block limit.