To be clear, I'm not trying to get around the small fees, only envisioning the speeding up of the process for the vendor and patron on a single transaction from a single wallet.
A credit card authorization ensures that the customer's credit account is open, is in good standing, and has sufficient funds to complete the submitted transaction. If the card passes these checks, the issuing bank will place a hold on the funds for the amount of the authorization.
When looking at your credit card statement online you might see these transactions as being marked "pending" or "authorization hold".
Unless the transaction was "authorization only" (e.g., in the rental car scenario) the "pending" transaction is at some part of the several-day process for transferring funds from the customer's charge account to the merchant's bank account. This is known as settlement.
Bitcoin doesn't have this same process flow however. You could approximate the 0/unconfirmed being the "authorization" request and a transaction reaching six confirmations as being similar to "settlement", but these cannot be used interchangeably.
When the credit card authorization is made, the card issuer has the "master node" which is the authority as far as the customer's balance goes.
With Bitcoin there is no master node. There is no single authority.
So the double spending risk with Bitcoin has to do with the chance of getting a false positive when accepting a payment transaction that has no confirmations. With no "master node" available, a merchant checks against the most recent copy of the blockchain to determine that the coins used to spend haven't already been spent.
That would work, except that a dishonest person can cause the merchant to believe the transaction is valid while at the same time (or later time even) that dishonest party can then broadcast a different transaction that ends up spending the same funds a second time.
The use of 0/unconfirmed allows false positives (i.e., a Bitcoin client might show that funds were received when at a later time a block may arrive with conflicting information) and the initial 0/unconfirmed transaction will disappear as if it had never been made.
Because there's no way to see what is in future blocks then until those future blocks are mined a merchant is exposed to risk of a double spend.
There are various double spend attacks, but to a retail merchant the race attack is the primary one to be concerned with. A merchant may use a payment processor (such as BitPay) or may go the do-it-yourself (DIY) route. The bitcoin.org client can be configured to protect against being super-vulnerable to the race-attack by not enabling incoming connections and to have outgoing connections be made to well-connected nodes. There are additional protections that could possibly be built to assist merchants however so few merchants accept on 0/unconfirmed today there hasn't been strong calls for these protections.
For instance, a 0/unconfirmed from someone paying with recently received coins that too haven't yet confirmed is more risky than is a 0/unconfirmed payment from someone who paid using coins that already have had more than six confirmations. Or another example is a payment made that ends up being low priority due to its size or having no fee paid, etc. The merchant can tell right away that the transaction will not confirm quickly and might want to delay crediting the payment as the longer the transaction stays unconfirmed the less cost there is to an attacker using rogue mining nodes who will process double spend transactions for a fee.
A bricks and mortar merchant like Cups and Cakes in San Francisco doesn't have much exposure to a double spend attack because it is economically unprofitable. Let's say a race attack against them succeeds one out of twenty times (probably even a conservative estimate, the more likely rate could be one out of fifty or worse even). So that means the dishonest customer is visiting 19 times in order to get the 20th cupcake order for "free". Cups and Cakes probably earns more than 5% profit on each sale, so even with this double-spend exposure they are not losing money due to an occasional double spend.