I think, that ideally, a 0 fee transaction should wait for 51% confirmations before being acted upon.
Some transactions will confirm right away without a fee. Others will take longer even with a fee due to other properties (e.g., having INPUTs who themselves have not yet confirmed).
This is going to become an increasingly important area to manage for those who accept on 0/unconfirmed (e.g., retail merchants).
Imagine paying at the counter and then being told your payment had no fee and thus you need to wait (hours maybe) to receive the merchandise you paid for. There's no way to cancel the payment, which makes it even worse.
I keep flip flopping on whether or not bitcoin can work for merchant payments.
If the retailer can make it economically unprofitable to try to double spend then there won't be a problem. i.e., if the attacker/thief has to buy 19 hamburgers before the 20th is "free" from a successful double spend, then an attacker probably isn't going to try. But the merchant isn't looking to figure out a way bitcoin will work, the merchant is looking only to sell hamburgers, and if a payment network gives hassle and risk it is not likely to be embraced.
Now that FinCEN has stated that merchants can accept bitcoins for goods and services without having to register as MSBs, there will probably be some new approaches coming (including intermediaries, likely).