On Linux, Firefox does not really have a choice. When the system rips out some vital libraries from under you because of an update, you can continue to use the old libraries in processes where they are already loaded. But new processes (i.e. new tabs) will not be able to load the old libraries.
It's similar to how, when you install a kernel update, new devices are not recognized anymore because the loadable kernel modules on disk are for the new kernel version, but you're still running the old kernel version. (There is the workaround employed e.g. by Debian where old kernel modules are left on the disk until they're cleaned up manually, but that opens the "manual cleanup" can of worms.)
> But new processes (i.e. new tabs) will not be able to load the old libraries.
I think it should be possible under Linux. Firefox could pass the old libraries as file descriptors to its child process and and the child could dlopen those through /proc/self/fd/... . Or a more robust mechanism along these lines. But I wouldn't seriously suggest that Firefox should do something like this, restarting Firefox every once in a while is fine.
It's similar to how, when you install a kernel update, new devices are not recognized anymore because the loadable kernel modules on disk are for the new kernel version, but you're still running the old kernel version. (There is the workaround employed e.g. by Debian where old kernel modules are left on the disk until they're cleaned up manually, but that opens the "manual cleanup" can of worms.)