Good point. One fix is to allow account balances to dip into negative, keeping track of which accounts currently have negative balances. And when finished processing, accept the block only if no such account balances exist.
This method is applicable only to payments. It won't work on advanced features like asset exchange.