I understand what each of them does, but am unsure of (perhaps) what the standard is.
If you would really understand what these functions do you wouldn’t be asking this question
And no, there is no “standard” here.
You use glOrtho when you want to render images without perspective.
You use glFrustum if you want perspective.
gluPerspective is just an utility function that calls glFrustum. It has different set of parameters so it’s up to you which one you prefer.
As for moving observer in 3D space. First mistake made by many beginners is to keep player’s position somewhere in the OpenGL matrices and use glTranslatef whenever someone presses movement key.
What you really need is player’s position stored in some variable in your application and each frame prepare matrices for that position:
//rendering a scene:
glRotatef(-cameraRoll, 0, 0, 1);
glRotatef(-cameraPitch, 1, 0, 0);
glRotatef(-cameraHeading, 0, 1, 0);
glTranslatef(-cameraPosition.x, -cameraPosition.y, -cameraPosition.z);
RenderWorld(); //static world
//repeat this for any movable object in the scene
glTranslatef(objectPosision.x, objectPosision.y, objectPosision.z);
glRotatef(objectHeading, 0, 1, 0);
glRotatef(objectPitch, 1, 0, 0);
glRotatef(objectRoll, 0, 0, 1);
DrawObject(); //movable object