OpenGL often has situations where an argument is actually an output. PyOpenGL has traditionally wrapped those entry points such that they would be removed from the inputs and returned as an output. I've just checked in code such that for most PyOpenGL entry points you can use either the Pythonic or the C-ish pattern (i.e. if you do not pass in a value, you get a new array, if you do pass in a value, your value is used).
Client code should not require any changes, but it should allow exotic things such as passing in VBOs, memory-mapped Numpy arrays, or whatever other weirdness people want to do.