Right. So part of this is my fault, I'm afraid, because I do not intend to implement any kind of subwallet/account support in bitcoinj. My reasons are:
- The bitcoinj API already lets you create and use multiple wallets. What's more, because of the desire to do key rotation (think rotating a previously unencrypted wallet to an encrypted one that is stored on SSD's that cannot reliably erase data), a bitcoinj wallet can actually contain multiple BIP32 seeds and hierarchies at once, although only the last one will be used for vending addresses. So adding subwallet support onto this makes it even more complicated.
- If there was a much better user experience to be enabled by this, it may be worth it, but I believe many people will find subwallets rather confusing. They don't match the analogy of bank accounts in several ways. For instance, transferring money across them leaks private data and costs miners fees, neither of which are true with banks.
Also it differs in a more important way. People have different bank accounts because those accounts implement different policies. Current accounts may pay a lower interest rate than savings accounts, but have different features, and accounts can be used as security boundaries i.e. no card withdrawals from savings. But "subwallets" are not like this. The only justification for their existence is to avoid outputs being merged together to make payments - a subtle technical detail of the protocol that users are ill equipped to understand. If someone asked me "why should I create a second account" I would be unable to give them a satisfying answer without first teaching them about how the Bitcoin protocol works and the privacy implications of that, which is practically a lecture sized topic.
- MultiBit did support multiple wallets for a long time (just by creating multiple wallet files and using the support in bitcoinj for running them in parallel), but they decided to remove this feature in MultiBit HD because it caused support headaches. People would stash money in one wallet or the other, close the wallet and then forget and think they had lost it, etc. It may be that TREZOR type subwallets don't suffer this confusion because they can't be moved around or "closed" in the same way a file can be, but still, this is a data point against multiple simultaneous wallets. At least for products targeting entry level consumers.
Whilst I can well believe there are TREZOR users who are asking for this feature today, currently the costs feel a bit higher than the benefits.
It would be rather nice to be able to type in a mnemonic code that myTREZOR was initialised with and duplicate that wallet into a bitcoinj based wallet app. But if I have to implement subwallets and expose this in the API, and if all wallet authors that want to be able to share a wallet with myTREZOR have to expose subwallets in their GUIs too, even though the concept may prove confusing and hard to explain, then it might be more tempting to just tell users that want to switch wallet apps to send the money via the block chain instead.