As long as there are multiple different GPUs around, there will always be a need for multiple code paths if you want to get good use of those GPUs, whether you use the same API or not.
Having a single, unified, inefficient base code path that you later optimise at hot points is invaluable to validate non-performance (i.e most) parts of your game.