For an easy analogy, this would be like WalMart charging your credit card for every item you pick up off the shelf, and refunding you if you put it back (actually worse, since SD uses 2 transactions for every action).
Not even VISA/MC could handle that kind of abuse, and their system (being centralised) is far more efficient than Bitcoin.
But I think it is worthwhile to show that the classic credit card are using two messages per transaction: authorization and capture.
http://www.authorize.net/support/merchant/Submitting_Transactions/Credit_Card_Transaction_Types.htm
Typical self-serve fuel pump would use two transactions: the authorization to unlock the dispenser and capture one the dispenser is put back in the locked position. Physical store checkout stand transactions typically roll those two phases into a single compressed form.
Directly the above information has no bearing to Bitcoin. But the "payment protocol" is an area of the active development in Bitcoin. It would be great that more people understood how the typical payments work and think on how to translate them to the Bitcoin global broadcast network.
One thing is to prevent double-spends. But there is additional value to be gained from discovering who even attempted to authorize more spending that they really had available funds.