I've been thinking exactly along these lines. The main bitcoin process should NOT be tied to the UI at all (and, while a wxWidgets UI is a great way to bootstrap the project, it's NOT a good solution for the long term).
In fact, I'd go so far as to say that one of the next major steps for the bitcoin system is two fold:
- Create a proper spec of the protocol (if one exists outside of the source code at this point, I haven't found it)
- Create a second, independent implementation of the protocol
Without a second, independent implementation, you can't be sure that the protocol is correctly documented.
Perhaps the "reference" implementation (which we're all currently using) doesn't need to change, but if I were designing a bitcoin client, it's be structured a LOT differently than the current client.