Also, just to clarify. You don’t necessarily have to draw a single frame of your entire scene within a single glBegin/glEnd. (And often times it would be inefficient to do so.)
What I usually do is something like so…
for each object
glPushMatrix();
DoTransformations
DoMaterialTextureEtcIfNecessary
glBegin(primitiveType);
DrawObject
glEnd();
glPopMatrix();
next object
I typically try to avoid transformations inside glBegin/glEnd.