Основное отличие состоит в том, что входные данные для функций glTexCoordPointer и glVertexPointer используются не сразу, а только после вызова метода glDraw, например, glDrawArrays, glDrawElements.
Поскольку массивы используются не сразу, вам нужно хранить указатель на массив, отправляемый этим функциям, достаточно долго, чтобы процедуры рисования могли получить к нему доступ. Данные должны находиться в собственной куче, в противном случае сборщик мусора может переместить базовый основной указатель, даже если данные не удалены. Чтобы получить указатель на собственную кучу, вам нужно обернуть данные внутри объектов Buffer.
В функциях, похожих на glTexParameteriv, используются значения в массиве, который вы передаете сразу, поэтому не нужно беспокоиться о выходе указателей из-под вызванной функции, и нет необходимости иметь их в собственной куче.
Если вы используете glTexCoordPointer и друзей из нативного кода, вы должны сохранять указатель, по которому отправляете его, до тех пор, пока не вызовете функцию glDraw. Из нативного кода у вас есть преимущество в том, что указатель не нужно заключать в объект, но у вас есть недостаток, заключающийся в том, что вам приходится управлять любым выделением кучи вручную.