Thanks for pointing that out. So hang on, what you're saying is that according to the original bitcoin spec, addresses should be single use only ?
So that means that this unspent output issue coupled with the confirmation time lag is basically an implementation problem due to the way wallet systems have evolved.
It can be a pain to generate a new address for every transaction, even for automated software. I suppose these are the kind of issues that show us that bitcoin is still very much a work in progress and while it's always being worked on, it's still in 'beta'.