It is intended that all normals for a particular polymesh will face the same direction and the reverse polygon normals tool will indeed toggle them back and forth. I have found that after some complex operations that the normals for a polymesh may become inconsistent and like visionastral2 says, flipping them twice will usually fix the problem. This is because Carrara reprocesses the normals for all polygons in the polymesh to make them consistant and typically, after the first application, they end up facing inward toward the center of the object. The second time you are just flipping them all outward again.
Face normals are perpendicular to the polygon face they represent and always resolve to triangles. They are calculated using the three vertices that make up the triangle. Draw a quad in the vertex modeler and turn on face normals in the interactive renderer and you will see two white-line normal indicators even though, technically you only drew one polygon.
Try drawing two triangles on the same plane (not connected in any way) in the vertex modeler. Draw the first in a clockwise direction, and the second one counter-clockwise. You will see that the normals face in opposite directions. Carrara can be set to not draw triangles who’s normals face away from the camera. Game engines use this technique (backface culling) to speed up rendering by not drawing triangles that would not normally be visible to the player.
Vertex normals are calculated for smooth surfaces by averaging out the normals of all faces adjacent to the vertex. A creased edge will have vertex normals that are perpendicular to the faces along the creased edge. Try viewing the vertex normals for a sphere before and after creasing the edges. It will make sense visually.
If your model looks weird rendered or on a shaded preview it could mean you have broken or inconsistent normals, so do check them. Broken or inconsistent normals can also mean deeper problems in the geometry of your mesh that you might not see in a wire-frame view or without moving individual vertices. I run into this with objects created/converted outside of Carrara and with complicated mesh operations.
If you need to intentionally reverse normals on specific polygons within a single polymesh select the desired polygons and use the detach polygons menu option. Detach polygon does not create a new polymesh separate from the original vertex object (like a copy-paste operation would do). it just “unshares” the vertices and edges of the selected polygons so that you can perform operations on them without affecting the larger polymesh. You can then go ahead an flip the normals on your detached portion of the polymesh.
Personally, I’d like to see a hot-key to toggle the normals display. I’ts a pain to have to pull up the interactive renderer dialog and you usually don’t need to keep normals always displayed.