In theory a current balance of every address would be sufficient but to prove that the balance of every address is correct, you have to keep the whole transaction history of how each of these balances came to be.
Once a client has checked that all transactions are valid it could prune the history of all totally spent addresses. This is an optimization that may be done in a future version of the client.
Other more aggressive ways of pruning go even further towards something similar to your thinking but they don't seem to be high on the priority list. See
this thread for a recent proposal.
Keep in mind, that once a client has thrown away parts of his copy of the blockchain, it cannot provide the pruned parts to other (new) clients anymore. This leads to a trust issue if done on a large scale. It has to be made sure that at least some nodes keep the whole history of the blockchain in order to have the same level of trustworthiness.
But yes, there surely is some room for improvements!