According to MSDN glRect(x1, y1, x2, y2) is equivalent to
glBegin(GL_POLYGON);
glVertex2(x1, y1);
glVertex2(x2, y1);
glVertex2(x2, y2);
glVertex2(x1, y2);
glEnd( );
Here 4 vertices are given without a texture coordinate.
I prepared an image with different colours in four corners.
Then checked output image of following codes.
glTexCoord2f(0,0);
glRectf(-1,-1,1,1);
glTexCoord2f(1,1);
glRectf(-1,-1,1,1);
Simply glRect will accept a single texture coordinate four all vertices, and it will never create the expected texture mapping.
I think its difficult to create entire texture image with glRect() function. :)