Say I'm drawing two objects that are lit with specular, diffusive and ambient lighting (specular and diffuse lighting coming from a single source), using shaders and a classic lighting model (e.g. like the one in the OpenGL Red Book). Shadow mapping has been included so if one object passes between the other object and the light source, a shadow is cast.

Now imagine that the two objects touch, in line with the direction of the light. If the objects are the same size and shape, the one in front won't cast a shadow on the one behind (will it?) other than on the hidden face. It seems to me that in this case maintaining the same normals for each of the shape vertices is incorrect, e.g. the calculated normals should only take into account the "visible" faces at this point.

So my question is - should I update normals when objects touch to get the lighting right?