One of the areas that isn't as well developed as it could be in terms of wallet design is fine-grained control over input selection policy. Coin control is great when a human is manually crafting transactions, but that's not really a very scalable solution. The attached image is a possible way to stack different independent selection algorithms. If wallets implemented something like this, it would be easy for other programs to implement new application-specific algorithms that would not need to completely reinvent the wheel. As an example, voting pools in Open-Transactions will implement cold storage in a FIFO manner, meaning that UTXOs will be clustered into groups which should be consumed in a specific sequence. Within that constraint, however, they still want to minimize transaction size. If wallets were designed to make selection policy modular, they'd only need to implement their FIFO algorithm and stack it in before the default algorithm. Surely this capability would be useful to other projects as well. It would also allow people who want to prioritize privacy over transaction cost to easily modify the behavior of their clients and would make it easier to incorporate new tx construction algorithms like CoinJoin. Link to the image in case attachment is stripped: http://i.imgur.com/Fkkq7pI.png -- Support online privacy by using email encryption whenever possible. Learn how here: http://www.youtube.com/watch?v=bakOKJFtB-k