You don't re-link binaries. The vendors ship you a new build. Your OS should not have any libraries other than the ones it needs to function by itself.
Well, that's the point. The vendor needs to relink, and now you need to wait for an update from the vendor of each individual client of a library. With shared libraries, replacing the shared library is enough.
What I did not understand is how static linking would have precluded the problem in the first place. I don't think that would have made those libraries less widely used.
> With shared libraries, replacing the shared library is enough.
Yes, but if a shared library update includes a bug, it affects all your programs! That's why it is a double-edged sword: The same mechanism that solves the bugs can also deliver bugs.
What I did not understand is how static linking would have precluded the problem in the first place. I don't think that would have made those libraries less widely used.