I've started work on integrating HD wallets, but it's a big job and will take a while. Once that work is done bitcoinj will stop reusing addresses, at least on desktop class machines, and MultiBit will pick up that behaviour automatically.
I thought with Electrum it would restore *all* keys, however many there are (as long as they weren't imported keys), from the 12 word "seed"?
Electrum does not use bitcoinj. It is based on python libraries. Electrum uses a separate deterministic sequence for change addresses. It's very nice actually.
Thanks for clearing that up Abdussamad. I was getting worried Electrum wouldn't restore change addresses. I agree, Electrum *is* very nice.