thanks for explaining that seems wierd but if it works, so if my pool payouts keep going to one address then its still keeping the amounts seperate?
I don't think anyone addressed this bit. The answer is no, the amounts aren't kept separate. It's only when an address is an INPUT that its entire amount gets spent. You can have several transactions send to the same address, and the address only stores the total balance (though the blockchain keeps a record of each transaction, and so will your client if you can be arsed to look, which I usually can't).
Not correct.
The blockchain ONLY cares about inputs and outputs. Each tx creates separate outputs and uses older unspent outputs (making them spent) as inputs. So if one receives 1 BTC, 0.5 BTC and 0.2 BTC at address X. The amounts are "seperate". Nowhere at the protocol level is there "1.7 BTC at address x". There are three distinct unspent outputs to address X in the amounts of 1.0, 0.5 & 0.2 BTC. One can create a tx spending one or more of them if one has the private key for address X.
There is no such thing as "total value" at an address at the protocol level. Now your client will scan the blockchain and give you the total but that is merely an abstraction. When your wallet shows "balance: 1.000 BTC" what is really means is that "as of the current block I have scanned the entire blockchain and located in the blockchain unspent outputs for addresses that I have the corresponding private key and the sum of those unspent outputs is 1.000 BTC"