Yeah, it just doesn't make sense to scam someone for a more few dollars or euros!
You probably understand this, but just to emphasize for all those people who are still skeptical: it doesn't just not make sense, it's
impossible. At least not without spending many, many thousands of dollars worth of resources, and then still only have a limited chance of success.
A merchant can accept Bitcoin zero-confirmation payments not just because his customers are such nice people that they won't scam him for a few bucks (or a few hunderd bucks). He can accept Bitcoin zero-confirmation payments because of how Bitcoin works.
Again, there's a lot of theoretical debate around this (I know Peter Todd mentioned a few tricks) but in daily practice, this is what it boils down to. Bitcoin works absolutely fine in point of sale situations.
Actually, if the merchant is running a simple BitcoinQT-like terminal you could try to connect to it with your Bitcoin node. Then you issue a transaction that pays for your coffee. But at the same time (or with a slight delay, some people wrote a paper) you issue a transaction to all other nodes (and mining pools) that spends the same Bitcoin (inputs), that paid for your coffee, to an address you control. Now the merchant thinks you paid for your coffee, but in reality it's the transaction that transferred the BTC to your own account, that gets confirmed and included in the Blockchain.
But there are ways of working around this. You have to simply look for transactions that are doing exactly this and don't accept them.