The binary compatibility has documented limitations. As https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2... explains, "The Redistributable your app uses has a similar binary-compatibility restriction. When you mix binaries built by different supported versions of the toolset, the Redistributable version must be at least as new as the latest toolset used by any app component." This allowed us to add VCRUNTIME140_1.dll as part of the "FrameHandler4" work that the compiler back-end team did. This decreases the size of exception handling info on x64 for compiled programs, sometimes significantly.
(I work on the Visual C++ team, on the STL. We regularly build Dolphin with our development toolset to prevent shipping compiler/library regressions, and to provide advance notice of source-breaking changes. I've had to report a couple of breaking changes to Dolphin and have been astounded at their prompt fixes - they are a wonderful team!)