well im working on a more modular client, that it would be relative easy to get to support 2 separate wallets.
its more like a daemon:
network daemon <-> blockchain and transaction verification <-> wallet daemons.
each wallet daemon would send a subscribe command to that blockchain daemon, for every address. and only receive tx, to these addresses. and when a wallet would like to spend something, it sends a signed transaction back to the block daemon.
the daemons could even be on different computers(using some RPC), for extra security.
yes please, sounds great... or how about 2048 wallets and only one block and transaction confirmation engine
(i have a habit of investigating scenarios that i'm not even likely to use... just to find out where the limits are)
having the functionality separate as you suggest, sounds like a great idea.