Why do you think I can't use standard APIs on Nvidia? I literally just said same compiler does both; Nvidia sits on the Khronos committee! They co-wrote the API that everyone uses, that their compiler also speaks!
Vulkan Compute is not an alternative to CUDA. There's a reason PyTorch doesn't provide Vulkan in their official binaries. It's in the source, though--build it yourself, try running any recent ML project, and see what happens.
Thats a weird strawman; compute in Vulkan is a replacement compute in OpenGL and legacy D3D, and as a twin sibling to compute in D3D12.
OpenCL is the actual intended replacement for all the pre-standard APIs, and has achieved its goals. If you want SPIR-V IR, OpenCL allows this and all the major vendor impls support it.
CUDA has no equivalent for SPIR-V, and never will. Nvidia's own internal IR is not, and never will be, documented nor stable across driver versions. This is a massive downside for ML middlewares, as they have no way of directly emitting optimal code that cannot easily be represented in the HLSL-flavored syntax in CUDA.