I was thinking how the "change addresses" thing will cause problems eventually. Why? Well because 99% or more of bitcoin users do not know about that, they think that if they have BTC in the address A and they spend some of them, then they will just have less btc in address A. They make a paperwallet, backup, or whatelse and meanwhile use it.
Then when one day they will use the paperwallet they will notice that the btc are no more in that address but in a new one due to how the "change" works.
Or not?
Would it be possible for the client to let the user designate the change address?
Like have the send money dialog pop up, you imput the amount and receiving address, and there is a checkbox with "Send change to new address", which if you uncheck, then you can input a change address (or choose between address in your wallet). This could be something which is turned on/off in the settings.
If you are interested in coin-control and/or not having problems with change with a "paper wallet", then use
Armory Bitcoin Client. Every time you import/restore your paper backup, you get the same infinite chain of Bitcoin addresses, and you can use a new address for every tx. And all change is sent to addresses on that chain, too. There's no risk of coins going somewhere that's not backed up.
But if you really want, Armory will let you specify the change address/behavior. You can either specify an address to use, or have it send all change back to one of the input addresses. The second one is particularly useful if you want to have a wallet with a finite number of imported addresses, and cycle through them.
But this is all in the same vein as Coin-Control -- users that actually understand how Bitcoin works like these options, but it's just confusing as hell to everyone else. That's why this is only available in
Expert usermode in Armory. From the main menu, click on "User"-->"Expert" then restart Armory.
Customizable Change:Coin Control: