This is what I don't understand. Why does change reuse invisibly link all the funds in the wallet? As it stands today, a newly generated change address would show up in any taint analysis as once-removed from the original address. Furthermore, services like blockchain.info can guess (admittedly with varying success) which outputs represent the actual transaction and which is the change. So, is the generation of a new change address really that beneficial to privacy? As I mentioned above, the real issue is choosing which outputs to use when creating an outgoing transaction. As long as the client doesn't let me choose, I will always end up accidentally tainting my addresses with each other, creating links between new change addresses and older receiving addresses, and so on.
EDIT: It occurs to me that you may be referring to a situation where the same change address is always used, regardless of the address from which the transaction is sent. If I have multiple addresses in my wallet, but one of them is always used as a constant change address, then indeed that address will link all the others together.
But that's not what I meant. I was referring to a situation in which every time a transaction is sent from a certain address, the change is returned to that same address. That way, every address is only linked to itself, and separate addresses in the wallet are like separate mini-wallets. Links between the addresses will only be created if I need to send a sum which is bigger than what I have in any one address, but obviously this problem exists with the current system as well. I could split my money into a thousand different change addresses, only to link them all together whenever I make an outgoing transaction of a large sum, thus negating any privacy advantage.