There has been some criticism of bitcoin's technical aspects. I just wanted to post a thought I've been having for the last week or two, given your great answer (perhaps you could respond):
If someone creates a better cryptocurrency than bitcoin, they should lock in a 1:1 exchange with bitcoin - so give 1 bitcoin and get 1 of the new currency back. At any time, one can recall bitcoins with the new currency at the same 1:1 rate. This way current bitcoin holders don't lose out to the new currency. There might be a minuscule commission to the creator.
One issue in uptake is trusting the issuer of this new currency to stick around to make good on their promise.
One weakness I see with bitcoin is speed of transactions across the network.