For something like coin control, parts were merged already, but the GUI wasn't. Well, honestly, if I was maintaining a wallet (I'm not) I wouldn't merge it either. We should be trying to make Bitcoin easier to use and less nerdy, not exposing the guts of the protocol in the UI. Rather I'd want to figure out a list of what people are using the coin control gui for - find a list of use cases then encourage people to implement them in a more direct way. Is this a privacy thing? Is it an accounting thing? Both? Neither? There's probably a better way to solve those problems.
This post is intended to be factual, and answer for what people use coin control for. Yes it can help a privacy. But it can make micro-payments (dust) more profitable for the user.
Say a user has 1.02 BTC at one address and .00012381 at another. When the user wants to pay .2 BTC to another a transaction can be made that draws both inputs and yields the .2 payment output and a .82012381 change output. This allows a user to merge micro-payments into spendable outputs. Do this several times and much BTC in fees could be saved making the .00012381 payment worthwhile.
As far as I'm concerned, the answer is splitting the interface into usermodes. That's why Armory has a "Standard", "Advanced" and "Expert" usermode. Custom change addresses and coin-control only appear if the user explicitly changes the mode to "Expert." It's a very elegant solution to making these "manual-transmission" features available while still giving most users the automatic transmission.
Although it's easiest if the windows are laid out in code. Then in the code you say:
layout = QVBoxLayout
layout.addWidget(button1)
layout.addWidget(button2)
if usermode=="Expert":
layout.addWidget(button3)