Would, e.g., persistence (cookies) be handled by a completely separate program, that just talks text-based protocol on the stdin/stdout, all sort of stuff (containers/multiple identities, self-destructing cookies, various tracking protection mechanisms, etc etc) would be a matter of wrapping it.
Would all networking be done by a separate process, adblocking (even in-websocket), experimental protocols (like IPFS), ensuring all the traffic would go through Tor, or just "user agent switcher" would be possible without core being even aware such things are possible. Caching could be an another program that facades this.
And non-core stuff, like history, bookmarks, saving passwords or syncing feels like something that should be separate programs that only interact with the core to obtain or inject the necessary information.
Of course, there needs to be a manager process that spawns necessary services (including extensions sitting in the middle, so it's also an extension manager, not just tab manager) and routes communications between them, so user doesn't have to do any programming unless they actually want to.
That's not a design, just a general idea^W^W some musing that mostly came out of frustration when I've tried to hack upon Firefox code, trying to rip out their accounts+sync implementation and replace it with something sane and simple.
I'm dreaming of this kind of thing for a few years, but haven't got anywhere - just greased some paper with silly diagrams and toyed with Servo a little bit, but nothing practical. Just writing this because I never saw similar suggestions and maybe it would resonate with someone.