Can you elaborate how the path change will break tons of projects as the path change is reverted in the function before any returns? If you have an example of something that fails or works differently or could work differently please let me know as I do not want to break anything or cause any issues as it seems odd that the masterpath is added to the end of the path so when the code seaches fro the compiler later it could find a different compiler on the path if one exists before the existing one (I got hit with this yesterday in my testing of clang on Windows MSYS2 as the clang exe can be in mingw32, mingw64, clang32 and clang64 and...).
Does the additional check and early exit make sense? Have I missed anything with this?