In addition to your stated issues (which actually are probably fixable), there's the computational power requirement. That cannot be fixed. Bitcoin requires thousands of times (or more) more computational power to do a single transaction than any centralized currency system I can think of.
I remember before bitcoin people would say "Oh, I have a couple spare computers... I just threw folding@home on them for now". Now, people are going out of their way to throw cycles at this currency instead of problems that help scientific progress, and thus humanity.
Bitcoin is a cool idea and well implemented for what it is, but I think attention should be drawn to its exceedingly inefficient use of computational resources.