It's more difficult than one might think to specify exactly while navigating where the old page goes away and the new one starts. Especially considering things like frames.
Also if you start a new context every time you navigate you can't for instance log into Google.
Addons get the necessary information. They can distinguish top level navigation from frames. And they could easily impose rules that keep google on the same container when needed.
That's the point of having an addon API instead of fixed behavior, to implement logic around such complications.
It's actually quite a difficult problem for the browsers themselves and they have all the information that's available. There have been a lot of issues with showing the new URL while the old page is still in the browser, for instance.
Having special cases for every exception doesn't scale. What about Outlook Web Access using Microsoft accounts or domain accounts? Are you going to build an add on for every webmail installation?
Sadly, that is currently not possible, not even with addons, because the containers can only be assigned when creating tabs, not when navigating them. There is a related feature (1st party isolation) but that is always-on, so it fails the unless I say otherwise aspect.
I have filed a bug explaining my use-cases [0], but it does not seem to be a priority at the moment. (other addon devs signalling interest might help)
[0] https://bugzilla.mozilla.org/show_bug.cgi?id=1323873