Sure. Different GPU setups have different performance characteristics (e.g. tiled vs non-tiled architectures), different sets of supported extensions, and differently intriguing and exciting bugs --- but isn't it still better that, at a basic level, that we talk to them over a common set of APIs (DirectX, OpenGL, and now Vulkan) instead of having vendor- or use-case-specific whole API surfaces?
Not really, because the amount of workarounds, and extension loading, tends to increase to the point that the multiple code paths are hardly any different from having a plugin architecture, and slowly one gets a middleware engine that only uses "one" API.