The workaround you said is a viable idea, however I'm not sure what the theoretical limit of number of unique addresses per machine is, but I suppose for transactions like these they probably own many computers.
Depends only on storage space and can easily be a billion.
One basic problem is volatility, gold is worth half-again what it was worth a year-ago in terms of the dollar, and also real goods. With the Bitcoin, the volatility problem is far, far worse. The vast price swings day-to-day make it impractical to price goods or services in Bitcoins. It has been an astonishingly good investment for early adopters, a pretty-good speculative vehicle, but as a medium of exchange it has very very limited applications.
Bitcoin is volatile now because there is so much uncertainty about it, and probably because of lack of financial instruments relating to it. As it becomes more established it will be much less volatile.