I think you're ignoring the largest source of problems, the elephant in the room that never gets discussed: incoherence of
ownership.
Software is in a pretty nice state today. Everybody accepts bugs, and unlike other fields we can get away with "NO WARRANTY" licenses. So the fundamental problem is one of incentive. As in, giving people an incentive to do better. Right now we can get away with constantly pointing at somebody else when there's a problem. Maybe that will always be true. There are certainly other fields that are sustainably high status relative to their customers. And they tend to involve a priesthood that understands arcane rules. So maybe we can get away with it indefinitely, turning gradually into an ossified field that requires tons of accreditation before you're permitted to write a line of code, and writing code for yourself, well
perish the thought. Or maybe we create a crisis so vast that the population at large throws their arms up and turns away from the open sea (as happened with
https://en.wikipedia.org/wiki/Zheng_He). This is a personal preference, but I prefer the latter future to the former.
But really I'd like to avoid both these endgames. And that seems to require
taking responsibility for your dependencies.
That is the prerequisite. Asking for better representations for your dependencies before you take responsibility is akin to asking for more resources before you can do the work your boss tells you to do. We all know how that conversation goes.