>> Microsoft can change DirectX whenever they want
They really can't. Software that uses DirectX will require a specific version of DirectX in order to have the correct ABI so that it can dynamically link against the DirectX libraries. Those versions and therefor ABIs are set-in-stone. Not to mention that a huge cross-section of the DirectX software library also distributed the required version of DirectX with the software.
Microsoft can change any FUTURE version of DirectX, but the deployed versions in the wild are out there and can't be changed.
I wonder if Microsoft has a cross platform .Net Core-like DirectX in the works. Given their push to unify their Windows and XBox gaming experiences, I can't imagine it'd hurt to spread that out even further and expand to capture as many games as possible. Though I guess outside the other consoles there's not a lot of other game systems.
I would not be surprised in the slightest if they did that. In fact, they've actually tried that before: https://en.wikipedia.org/wiki/Microsoft_XNA. It's discontinued, but still used.
MonoGame implements the XNA API and lets you write games that run on Win32, UWP, macOS, Linux, iOS, Android, Xbox One, PS4, PSVita, and Switch. That's probably the best cross-platform support of any game framework.
They really can't. Software that uses DirectX will require a specific version of DirectX in order to have the correct ABI so that it can dynamically link against the DirectX libraries. Those versions and therefor ABIs are set-in-stone. Not to mention that a huge cross-section of the DirectX software library also distributed the required version of DirectX with the software.
Microsoft can change any FUTURE version of DirectX, but the deployed versions in the wild are out there and can't be changed.