there is one difference between System.AppDomain.CurrentDomain.GetAssemblies() and the AssemblyLoader's list - and it comes into play when a hard-referenced dependency wasn't found (i.e. the cases where you remove 999_scale_redist). In that case, the Scale.dll assembly will NOT be in the AssemblyLoader's list but it WILL be in the System.AppDomain.CurrentDomain.GetAssemblies() list. I think this explains some of the differences you see, depending on other mods that might be using one of these or the other.
Tasks:
[ ] Check the everything (properly) loaded on System.AppDomain.CurrentDomain.GetAssemblies() also appears on AssemblyLoader's list
[ ] If positive, use the later on KSPe's routines instead of the former.
On https://github.com/TweakScale/TweakScale/issues/312#issuecomment-1830269105 , one KSP idiosyncrasy was finally diagnosed:
Tasks:
System.AppDomain.CurrentDomain.GetAssemblies()
also appears on AssemblyLoader's list