there are shops, bars and restaurants who accept your bitcoin payment without a single confirmation. but that's probably up to €50. not sure if they also accept it without confirmations above that amount.
This is exactly the situation I see as ripe for scammers. 3 people in different shops using the same bitcoin wallet. they coordinate via whatsapp to make the payment at approximately the same time. 3 transactions appear on the network but 2 are rejected as a double-spend. That is 3 €50 dresses for just €50.
What is the solution? Wait ~10 minutes for 1 confirmation?
I see a business model here for multisig wallet providers that focus on shopping hot wallets for smartphones. With a trusted counter-party to guarantee no double-spend the merchant lets you walk out the door immediately. Yes we don't like centralization and counter-parties, but this just a niche, you put spending btc into your shopping wallet for the convenience of instant payments.
3 people coordinating to steal €50...or, one person just steals €50 worth of stuff and runs out.
Especially in bars, and restaurants you are usually there for a few minutes anyway. And just about every place I have paid in person has used a third party service like BitPay or another local processor.
So more than likely the three shops in your scenario will use the same processor. They see 3 payments coming through from the same address and drop the second 2.
If you want to get elaborate with stealing €50 with 3 people, one guy pays with his credit card, another guy climbs on the roof to block the satellite connection of the payment and the third guy for lookout.
Most people who complain about the long transaction times for in person payment have never paid in person. Try it. You'll see how simple it is.
Your scenario is based on using a bitcoin payment processor, this is very common currently because most merchants want to convert instantly to fiat. even the bitcoin price is dynamically adjusted by the payment processor because the merchant has based his prices in fiat. Under this scenario sure the payment processor would likely pick up on a double-spend attack.
However the scenario I am painting is based in the future when the merchant denominates prices and pays suppliers in btc. In this scenario he just needs a wallet. He sees the unconfirmed transaction show up in his wallet and lets the customer go. but the customer has colluded with customers in other stores to spend the full amount of the wallet balance at the same time... only one merchant will have his transaction confirmed.
Nodes don't accept double spend transactions. If they were in close proximity it would be known within seconds.
Satoshi said that after 6 minutes it is reasonable for all the nodes in the network to have your transaction.
About the only way to successfully do a double spend is to spend at the same time as someone on the other side of the world. The transaction would populate all of the nodes in close proximity within seconds, moving on to other countries with more delay until finally reaching the other side of the world closer to a minute or so.
I still believe most merchants will use a payment processor, even when keeping it in Bitcoin. They enjoy the services of having their wallet up to date, accounting software included, the option of converting to fiat, etc.
You would probably have to run out of the building and hope there are no cameras in order to execute a double spend for your small purchase. Same as just grabbing everything and running out the door.