Для отрисовки одного спрайта, нет реальной проблемы в этом, но нет никаких преимуществ, если вы используете glRotate / glTranslate для позиционирования спрайта. Так написано множество игр.
В моих играх я использую объект буфера вершин с GL_DYNAMIC_DRAW для хранения всех спрайтов, которые разделяют каждый атлас текстуры. Я обновляю позиции вертушек на CPU и отправляю всю партию за один вызов отрисовки. Я могу нарисовать еще много спрайтов, используя этот подход. Я мог бы делать позиции в вершинном шейдере, если бы мне нужно было рисовать еще больше.
Также имейте в виду, что OpenGL ES2 не поддерживает списки отображения, поэтому, если вы подумываете о портировании на устройство ES2, вам придется сделать это заново. (iPhone / iPad поддерживает ES1, но вы не можете смешивать и сопоставлять с ES2, вы можете использовать списки отображения ИЛИ шейдеры, но не оба).