Wait, what?
If you write code, part of the documentation before you start should be a "risks" statement, where you state that a dependency on X external, third party library, exists, and that any vulnerability could cause issues in your application. Also, that substantial upgrades to the library interface will affect maintainability if any interfaces are changed, or are deprecated.
When someone throws a pile of libraries at a problem, that risk statement gets lengthy.
Rewriting from scratch is not the best solution when you use a robust, mature library like zlib. They had vulnerabilities, fixed them, and upgrading was no chore.
Management loves risk statements, because they hate risk and want to know where they are exposed. Written correctly, the risk will analyze the maturity of the library and the guarantee that it makes.
Kernel calls in Linux are not guaranteed to break ABI, but some things in Linux do have a level of guarantee. And as much as I hate to say it, COM/ATL interfaces where you can choose which version of the interface to use, but it can be patched behind the scenes - which turned into the idea of a "service contract" that can't be broken.
Your problem isn't with using external libraries, it's using ones without service contracts, or immature ones. And you're reacting by throwing out the baby, bathwater, bathtub, house, plumbing infrastructure, and electrical grid.
You can put a stop to that shit by explaining what a contract is (management should be familiar) and what happens when it breaks. And things diverge, since the answer isn't "lawsuit them to death." Now you research the maturity level of each library, starting with the ones you hate, and make a case for removing some of them.