This is a fundamental misunderstanding people have about Bitcoin.
A bitcoin before a block confirmation ~ A credit card before 180 days.
There is a small possibility of "undoing" a transaction before a block confirmation, just like there is a small possibility of a customer doing a credit card chargeback before the credit card payment clears. However, it's a pain in the ass (even moreso with Bitcoin), isn't reliable with Bitcoin, and almost no one ever does it.
For small transactions like buying soda from a vending machine, waiting 2 seconds for the transaction to propagate is more than enough.
The only time I would ever wait for a block confirmation is if I was doing a transaction in the thousands of dollars range.
PS: A 51% attack is only needed to counter confirmed transactions unconfirmed transactions have little protection and take a while to get confirmed.
But that's different from a double-spend, which is reversing a tx that already has 1+ confirmation, through a chain reorganization.
The economics and technicalities of this are analyzed extensively in the latest Ethereum blog post https://blog.ethereum.org/2014/07/11/toward-a-12-second-bloc...
That might help, but this is an issue which can be addressed after the pilot starts.