Notice you dont really grab your bag of items until the credit card machine beeps. The BTC beep takes between 1 and 25 minutes to arrive, there is no getting around this issue, if you want the wallet to remain anonymous.
Bitcoin is faster than credit card: here in Vancouver several brick-and-mortar merchants accept bitcoin via BitPay. It is standard to consider the invoice paid when the network picks up the transaction as valid. This typically occurs in a fraction of second--faster than a credit card.
The double-spend problem, to most users and vendors, most of the time, is academic. Let's consider how you could double-spend against a coffee shop here in Vancouver:
DOUBLE SPEND ATTEMPT #1: (fails)1-A. You walk up to the counter and ask for your coffee. The sales girl generates the BitPay invoice, you scan the QR code, and press "send" on your iPhone. The BitPay app picks up the transaction on the network in a fraction of a second, and the invoice suddenly says "PAID." You grab your coffee and leave.
1-B. But you're sneaky: you quickly run into your car where you've already generated a raw transaction with the same coins you used to pay for your coffee, but in this fraudulent transaction you instead send the coins to an address you control (you used the brainwallet.org "transactions" page) . You broadcast this transaction using blockchain.info's pushtx service (
https://blockchain.info/pushtx). What you will realize is that by the time you got back to your car, the original transaction has already propagated across the network. This means that nodes will not relay this new fraudulent transaction and miners will not add it to their memory pool since they know that these coins were already spent. Double-spend attempt #1 fails.
DOUBLE SPEND ATTEMPT #2: (fails) 2-A. Discouraged by your failure, you head back to your evil lair where you continue your plot to get free coffee.
2-B. You decide that you need to broadcast both transactions at roughly the same time in order to have a better chance of success. You need to do this *inside* the coffee shop, but all you have access to while inside the store is your blockchain.info app for iPhone. So, you jail-break your phone and hire an iOS expert to create you a custom double-spend app. This app by design sends out the transaction to the coffee shop, but also sends out a transaction to an address that you control.
2-C. So you order your coffee and test out your app. But the BitPay invoice never says "paid." When the sales girl checks at blockchain.info, she sees a big red "DOUBLE SPEND DETECTED" warning beside the transaction.
2-D. You don't get your coffee and leave the store with everyone thinking that you are a thief.
DOUBLE SPEND ATTEMPT #3: (succeeds once and a while)3-A. Back at the lair, you realize that your quest for free coffee is more difficult than you actually thought. You call up some nefarious miner that controls 30% of the global hash power. You tell him that when you give him the signal, he should add your fraudulent transaction to his memory pool of unconfirmed transactions. You pay your iPhone hacker to modify your app to send the evil miner a special signal when you buy your coffee.
3-B. You go to the coffee shop and buy your coffee. Your new app sends the signal to the evil miner that you're in cahoots with. The miner adds your fraudulent transaction, while the real transaction propagates across the network.
3-C. Since the evil miner controls 30% of the global hash power, your coffee is free 30% of the time.
3-D. Finally, you succeed! You also decide it is a lot less work to just pay for your coffee normally...