No puedo pensar en nada de lo que hace GLKit que no puede ser reemplazado por un código que no sea GLKit. Puede simplificar algunas tareas de OpenGL ES 2.0 al abstraerlas de usted, pero no hace nada único. Lo más parecido a tener algo que no puedes replicar en otro lugar (por lo que he modificado) es la matriz acelerada y las funciones matemáticas vectoriales que proporciona, pero incluso esas podrían reemplazarse con un pequeño código Accelerate o NEON.
Si bien me gustaría utilizar GLKit en mis aplicaciones, todavía apoyo iOS 4.2 con ellas, que no tiene GLKit disponible. No hay nada que esté actualmente impedido porque no puedo usar GLKit, solo tengo que escribir un poco más de código para manejar cosas como ver actualizaciones, cargas de texturas, matemáticas matriciales, etc. Hay mucha documentación y ejemplos por ahí. para estas operaciones, para que no tenga que preocuparse por estar solo cuando se trata de implementarlas.
Tendrá problemas mucho más grandes que GLKit cuando intente hacer que su código sea multiplataforma con la Mac, y especialmente con Windows. Desktop OpenGL y OpenGL ES tienen algunas diferencias en sus implementaciones, y deberá tener en cuenta los lugares para sustituir una función o variable incorporada por otra. CAOpenGLLayer y NSOpenGLView en la Mac también son diferentes de CAEAGLLayer en iOS, y AppKit en general es un animal diferente de UIKit.
Windows será un desafío aún mayor para la compatibilidad, ya que no podrá usar ninguno de los marcos Cocoa, y probablemente tampoco el Objective-C. Esto le tomará mucho más tiempo que cualquier diferencia de OpenGL/OpenGL ES.