As the question states. The best example of this I have right now is the function glSelectBuffer. I'd like to know if I can call it just once in my init function or if I have to call it every single time, before I do glRenderMode(GL_SELECT). But just in general, there have been many times when I've wondered whether I can just call a function once at the beginning of my program or if I have to call it every frame.
I know that OpenGL is a state engine, but it seems to me like some things are kept in the state and others aren't. And yes I know, when I modify something later in my program, I'll have to reset it back to the first value in the beginning of my loop each time, because of OpenGL being a state engine; that's not the answer I'm looking for.
If nothing else, if you find me very confused and you haven't had such a problem, then please just answer my sub-question of whether glSelectBuffer can be called once or needs to be called every time.