I'm unclear on the unity source availability. It's impossible to fix a bug because you don't have the source? But you're staring right at it, which implies you do?
If you're a big company (think publicly traded, not just big), you do have near realtime access to both Unity dev teams and the full up-to-date source, and you may even ship builds made with internally customized Unity versions, but it's such bad code that you wish you didn't. And they don't accept patches back for integration in any timeline worth considering, so it's really hard to maintain local changesets while still pulling Unity's improvements in patches releases.
What is your source on that? You do not have to be a publicly traded company to get source code Access, the source code is actually pretty well written and maintained. With the new approach of features being delivered in packages you get all the source directly in c#.
Unless things have changed drastically since I was at BigCo (and maintained a branch of Unity 4 for several teams, so was very familiar with the codebase, and their native code was horrific) unless you have serious sway you don't get engine source, and in my experience that's where a ton of the bugs that will screw you lie. In fact I'm dealing with a few right now at a smallCo that definitely doesn't have access (we've asked) to the important pieces of code that are making our lives hell.
I definitely agree that shipping more stuff in C# packages is a good thing, and those are mostly well written, I mostly just hate the actual C++ engine, which is frankly a disaster held together by bubble gum and spit.
Unity's source is not open source. They let you look at the C# code, but not modify it or redistribute it. You can purchase a license to get the source code including the engine code.