Don't take this the wrong way kvark, but is Vulkan Portability really the long term answer here? Do we want everybody to be writing Vulkan code? It's unfortunate that due to the mess of tilers, Vulkan got way more complicated than it likely should have, a lot of stuff wasn't properly thought out (i.e. pipeline derivatives, framebuffers, push descriptors), and we're even walking back a lot of the "atomic draw" promises with e.g. VK_EXT_extended_dynamic_state. Even D3D12 had its allocation APIs pretty badly neutered, leaving is in this pretty suboptimal place.
I love the promises that Vulkan in theory provides but in practice the gains haven't been as bold as we thought they would be. Explicit APIs have less lies than the older ones, but still are pretty far from zero.
I have always seen its goal as providing the means to create different user libraries for different specialized purposes on top of it.
Then you also get implementations of other APIs like Direct3D on top on Vulkan, which is amazing because you can reuse all your code and tooling and run everywhere.
I love the promises that Vulkan in theory provides but in practice the gains haven't been as bold as we thought they would be. Explicit APIs have less lies than the older ones, but still are pretty far from zero.