Ofc, all game engines will be coded properly the same way. It seems unity3D is doing exactly that (but their vulkan3D backend seems far to be on par with their glcore backend).
Elephant is the room: c++ is not mean for binary-only games on elf/linux since the static libstdc++ does not libdl (dlopen/dlsym/dlclose) its system dependency (unless it was fixed by c++ gcc devs and I missed it). absolute truth: c++ syntax has a toxic complexity, not to mention its absurd and grotesque _very few_ required compilers in size and complexity.
And of course: Silksong, Half-life 3, dota2 out of beta and more native AAA (irony).
I don't talk about proton, which does just displace the QA which should be done by the game devs on native elf/linux to the "proton devs" (probably a money sink hole for valve) which have to deal with the massive bloat and kludge, msft grade (yeah...), of its code and SDK. It would be more reasonable with a lean build of wine(win64 core)+only vkd3d(dx12->vulkan), but I guess few to no games would run on that. Heard proton has straight copies of windows components... which would make things even worse.