Absolutely for gaming, Nvidia has a very loyal fanbase (myself included since the 4600GTX days) but for data centers? Different ball game. Both companies are now pushing into that territory pretty hard.
At least Linux gaming shows negative trend for Nvidia (though it's still a big majority), and for the obvious reason - AMD provide open source drivers which have become very competitive lately.
Not CUDA itself, but lock-in of various libraries that are CUDA-only. No one stops you from making a library that works with OpenCL or Vulkan for example for compute purposes.
No one stops you but it's a huge time investment. It's not only CUDA... it's the massive amount of optimized libraries NVIDIA provides. For example, CuBLAS (linear algebra libraries), CuDNN (libraries for deep learning). These things really need massive engineering teams to pull off and are very tied to the hardware.
So there should be combined effort to make such libraries that are cross hardware. If many people need it, why don't they pool resources and create open libraries like that?
See: https://www.gamingonlinux.com/index.php?module=statistics&vi...