I believe that is untrue.
Having source code access does not mean that the problem can be fixed. And not having source code access does not mean the problem cannot be fixed. If you can sidestep it, then you can sidestep it without source. What’s more, having source code access does not even necessarily mean you’ll have easier time fixing it, because rather than poking it with a stick and figuring out what makes it die, you’ll spend time trying to fathom mysteries of alien logic used in the problematic spot, which can take longer.
Working with closed source platform is a very common thing, and when developing for windows, you CAN end up in a situation where you have a stack trace which ends up deep in the guts of ntdll. In this case you do not usually bemoan lack of source code access to ntdll, but look for way to figure out what happens and sidestep it. Because windows is even a bigger Leviathan than Unreal Engine (300 gigabytes repository, as they say), and you will not have time to do someone else’ job trying to fix it.
Likewise, if working on linux, you somehow hit a kernel level issue, if you aren’t already kernel developer, you won’t be fixing that. Because it takes prohibitive amount of time, and won’t be applied to every system you deploy on. So you won’t be diving into source, and instead will sidestep it.
That makes me wonder if you really need source code in the first place. Basically, the “under the hood” stuff does not have polish of the outer API, and is in “proceed at your own risk” category. Or even in “Abandon all hope” category.
It also makes me remember time of Accolade which reverse engineered a console to make games without acquiring proper license. Or when I, myself was writing a plugin for a closed source engine which implemented faux post-processing effect which the engine did not officially support.
In the end most likely scenario is that source code access matters when the source code is designed as a product, but in reality “under the hood” stuff is eldritch horrors, and is messy.
Also regarding this:
your other option is to replace faulty system with your own. That will be more efficient than praying, in my opinion.
I would advise to study techniques for debugging without source code access. Decompiling and disassembly are useful tools, same goes for tracing system calls, and so on, so it makes sense to add more items to your toolbox.
Rather than “I need source to fix it!”, I think “How can I diagnose and sidestep it if source code is not available” is a more useful approach.