You don't need a globally recorded block chain transaction to buy things in your supermarket. If the supermarket screws you over, you go to a different one. Until then, you just trust them they don't steal a bag of food's worth from you.
The failure mode isn't the supermarket stealing from you; it's that to stop you from stealing from the supermarket with instant payment, you need to have something else than locally stored bitcoins. We don't yet have an easy-to-use "something else" which doesn't require trust, but we will.
Such things can be handled by cheap payment processors, and if you're paranoid some block chain escrow to keep it from running with its user accounts. It's a complete waste of bandwidth and storage to do the single transactions on the block chain.
The aggregate marginal cost of handling a transaction will likely be on the order of magnitude of a cent; this is not a good argument against having a supermarket purchase as a transaction on the blockchain. (Confirmation time arguably is.)
Is there any way to get
much faster confirmations?
I'm developing BitVendor and really need to be able to receive at least 4 confirmations fairly quickly (like before the customer walks away with the vendors merchandise). Would upping the transaction fee accomplish this? How quickly can confirmations come?
add more nodes, or/and pay a little more in your mining fee
This only helps to prevent the first confirmation from being
more than 10 minutes on average. It's completely useless for making it less than that.