By fiat, I don't mean to suggest that someone dictated it with an iron fist. But I do mean to point out that it makes the currency dependent on a central authority. Sure, it is open source, but it is meant to benefit humankind, not just developers... over 99.9% of its users will have no clue how to participate in the management of this convention, which at this point appears to be designed to require it.
Wouldn't it make sense to change the convention to something that will automatically cope with growth, much like the difficulty system adjusts to new computational pressure? With a hard limit like this, the threshold at which it suddenly grinds reliable transaction processing to a halt at a reasonable price (until everyone upgrades their client at the direction of the developers) will, in all likelihood, be exactly at the moment where it sees a viral surge in new popularity that suddenly brings it past that point and to its knees. That may bring it a lot of unnecessary questioning and criticism by the public and the media, particularly about just how truly viable and independent it is.
I have read repeatedly that the achilles heal of Bitcoin is that 50% CPU threshold. I have never heard of another one I believe might exist - the possibility that the Bitcoin community gets very large, and then has factions, the block chain forks, and the system crumbles in the face of FUD while two or more camps argue which leg is correct (sort of like a country that started out with a Constitution or a religion that started out with a Bible or Koran and now has two large factions eternally asserting their particular interpretation of it). Two religious factions can go their own way and live their own separate lives on separate lands, but if they must trade while they can't agree on what constitutes the existence of money, the money may as well not exist. If Bitcoin is in its "constitution" phase, I would submit that the time to address something like this is now.
That requires an assumption that the rate of transactions will be sometimes above 50 KB per block, and sometimes under. That's a pretty narrow line. What about the point where it is always over 50 KB? Then it will always cost money - possibly substantial money - just to use money, making it very different from cash. No one will want to receive Bitcoins without any guarantee that they're actually going to receive them anytime soon, there will be lots of uncertainty while recipients wonder if they will ever receive that payment they were sent, there will be lots of unusable bitcoins tied up in limbo because their recipients can't safely spend them, there will be lots of recipients who demand that their transactions be accompanied by an X fee to assure prompt posting, where X is a number that escalates indefinitely until an equilibrium is achieved between growth versus people get frustrated and decide to abandon the system.
At some point it's reasonably necessary to match the transaction volume with the capabilities of the system - if I buy a soda, and 10 million nodes must each exchange and store 210 bytes (total 2.1 GB system-wide for my soda) that's admittedly impractical, especially when 10 million other people might be buying a soda too.
At a volume like that, Bitcoins would become no longer useful for trivial stuff like lawn mowing or MMORPG equipment, and become more like wire transfers (where the fees make impractical all but the largest transactions), until some sort of mechanism (like a distributed hash table or "supernode" hierarchy) were put in place to cull the noise arriving at every node.
If Bitcoin has aspirations of being a real currency that can survive the evils of governments, it's perhaps best not to consider it a long term solution as a way to pay for swords in games and micropayments. The way it looks to me, it doesn't look like it could sustainably serve large and small commerce at the same time. Short of an overhaul, it would have to pick one - and if I understand its goals correctly in the big picture, it will do the world more good for the big things rather than the small.
That is true only because Mybitcoin.com and Mtgox.com do not collectively control more than 50% of the CPU power on the network. I assume things would be different if they did. This is the thought that leads me to advocate for the maximum incentive for average Joes to keep generating blocks.
The risk of having the entire network usurped by an adversary as a result of not incentivizing users to throw all the CPU power they can at the network is potentially material to the value of all bitcoins in the system.
An increase to an economy's monetary base isn't intrinsically bad - it's only bad when it substantially exceeds the increase in size of the economy's capacity for production. The opposite on the other hand, deflation, which occurs when output grows faster than the money supply, has got to be at least as destructive to preservation of value, when it leads people to hoard coins speculatively, and when that in turn leads to bubbles and wide swings of volatility. I guess it depends on what purpose the currency was being minted for. Unless bitcoins are meant for long-term saving, I am suggesting that zero inflation isn't automatically a good thing.
Further, if permanent slow inflation is allowed explicitly for one purpose (supporting miners), then by participating in distributed mining, anyone can offset their inflation losses by contributing their fair share of the distributed mining. In doing so, they're compelled to contribute their CPU, which strengthens the network as a whole, and unlike investing fiat currencies to combat unpredictable inflation, their payout would be more or less predictable (and always positive).
One danger not applicable to gold and silver, is that all of the mining companies in the world can't just get together and decide to change the fundamental physical properties of the metals they are looking for. They can't suddenly agree that gold is now twice as abundant today as it was yesterday, or that its atomic number is now +10 what it was before. But if they control more than half the CPU power being used for mining, it seems they could have quite a bit of influence over the fundamentals of bitcoin.
Perhaps we should consider a "flushing block" every so often, wherein the top limit is uncapped for that single block, to allow all persistant transactions to clear. This could be done once every retarget, permitting the network to catch up, so that even free transactions have a high end limit of two weeks of wait.
If Bitcoin were to become as regularly used as Paypal, and the influx of 10 megs every few minutes (along with the outflow relaying it to other nodes) were a reality, I and presumably many others would not be able to sustain it on our internet connections. It would suffer the same fate as the first revisions of Gnutella where the network was crushed under the weight of every search being propagated to every node, until the system were re-engineered to work in a more hierarchical fashion.
The way I understand it, a flushing block would defeat the purpose of a block limit, which I understand mainly to be spam prevention. IF a transaction is going to end up on a later block anyway, what reason does there exist to stop it from going on a block generated now?
If that becomes the status quo, the way it looks to me, that's a gift to anyone who wants to attack the network. Anything that gives "good" block generators (as opposed to "evil" ones) an incentive to stop trying to generate blocks is something that appears to me would weaken the network as a whole.