In most cases, for low value transactions, zero confirmations are acceptable.
Not any more. Since the transaction malleability problem, the trend is against accepting transactions without confirmation.
Spending unconfirmed change is also on the way out, again due to the transaction malleability problem. In the latest Qt client, "Don't spend unconfirmed change" is an option, although not yet enabled by default. When you send a transaction, your "change" from the transaction is unconfirmed, usually for an hour or so. So some part of your account balance will be tied up for an hour each time you do a transaction. This can limit how fast you can do transactions from a single wallet.