A huge thank goes to Alessandro Re for the help and infinite knowledge in OpenGL programming. For instance, he explained me how to texture map spheres correctly: matter of three steps.
1) Quit using glut*Sphere(), 'cause "this function does not correctly set up the texture parameters needed for mapping". There's a GLU function that does it, and it's gluSphere().
gluSphere() draws a sphere of the given radius centered around the origin. The sphere is subdivided around the z axis into slices and along the z axis into stacks (similar to lines of longitude and latitude).
If texturing is turned on (with gluQuadricTexture), then texture coordinates are generated.
2) As documentation says, we have to specity a gluQuadricTexture before calling gluSphere();
gluQuadricTexture() accepts two parameters: a reference to some quadratic object and a boolean value.
3) We have to create the quadric object then! We do it with gluNewQuadric() function; it returns a pointer to a GLUquadric object that can be passed to gluQuadricTexture.
So here it comes the snippet:
This code will create a perfectly textured sphere, with specified radius, made by that number of slices and stacks!
sfera = gluNewQuadric();
gluQuadricTexture (sfera, GL_TRUE);
gluSphere (sfera, radius, slices, stacks);
Another important issue solved speaking with Alessandro and doc. Paolo Scala is the handling of lights. They can't be set up at beginning, or randomly in models/camera definition: despite the coordinates we give, they will mess up. Discovered that is FUNDAMENTAL to place them soon after the gluLookAt() call, to be sure they will be where we expect them!