I am more concerned with the amount of inter-nodes traffic.
To put it simply - when the number of users is big the block size itself will be too big to be useful.
A block needs to hold 10 minutes of _all_ transactions or the system starts lagging and transaction times will soar to infinity.
Let's assume each user does at least 1 transaction per day. There are 144 blocks per day.
A million users * let's say 100 bytes per transaction / 144 = almost 1 MB per each block = 6 Mb / hour constant incoming traffic to every client.
I love the cryptocurrency idea, but I don't see any ways of implementing it on the scale of PayPal or VISA.
I take your example again of 1 million transactions a day. It doesn't matter how many users send how many, just the total number of transactions per day counts towards the traffic a full client needs to receive to keep up with the block chain.
Let's take 300 bytes per transaction, then we get 300 Mbytes/day of data.
That is 12.5 Mb/hour or 3.5 kb/sec (or about 28kbps), that is about 1/3 of a high quality VOIP connection. Don't see any problems there related to bandwidth !
When we extrapolate on a yearly basis, then we get about 100 Gb/year. Doesn't look much either to store that.
If you add the retransmissions to other nodes: let's assume you're connected to 20 other nodes. Then about 50% of the nodes will already have the data you just received, so you need to transmit about 10x. So now you'll need about 300 kbps. This won't kill the Internet

So in this regard, the bitcoin protocol has no real "flaw".