Waiting for 1 confirmation is safe enough for the real world.
0 confirmations is safe enough for real world purchases involving less-than-substantial sums of money. The only way someone could double spend the money they sent you is to find a block, include in it a transaction from one of their addresses to another address of theirs, not broadcast the block, run to your store and buy a good, run out, and broadcast their block to get back the bitcoins they sent you.
They have to run the risk of someone else finding and broadcasting a block in between the time they found theirs and they ran out of your store, and the risk that you will track them down and report them for shop-lifting/fraud once their payment to you becomes invalidated.
As for cash, I hate coins. If people were decent enough to include sales tax in the price of the product and make all the prices end in multiples of .25 (even .49 and .99 are acceptable) it would be different, but most stores don't do that. That's reason enough to use Bitcoin for me.
Very true.