OpenGL допускает как «основной» профиль, так и «совместимый» профиль. Таким образом, для большинства систем вы не потеряете доступ к устаревшим или удаленным функциям.
Но если вы хотите обеспечить совместимость, лучше всего придерживаться основной темы. Вам не будет гарантирован профиль совместимости (даже если у большинства аппаратного обеспечения такой профиль есть, и в текущем состоянии более вероятно, что вы столкнетесь с устаревшим OpenGL, а не с основным ядром). Также OpenGL ES теперь является подмножеством OpenGL, можно написать программу OpenGL ES 2.x / 3.x и запустить ее в OpenGL 4.3 практически без изменений.
Игровые приставки, такие как PlayStations и Nintendo, поставляются с собственными графическими библиотеками, а не с OpenGL.
Они были основаны на OpenGL, но здесь урезаны аналогично ES (я не думаю, что ES 2.0 был тогда). Эти системы должны писать свои собственные графические драйверы и библиотеки, прося поставщика оборудования написать, что в целом представляет собой целую загрузку унаследованных библиотек обёртывания, немного (все функции фиксированных функций просто в конечном итоге будут реализованы в шейдерах и вполне вероятно, что в любом случае glBegin / glEnd будет автоматически превращаться в VBO).
Я думаю, что было также важно убедиться, что разработчики осведомлены о текущем способе программирования. В течение десятилетий людей учили «неправильному» способу делать вещи по умолчанию, а объекты буфера вершин учили как дополнительное.