There is no backface. There is point data and a computed normal. When you have single sided materials the rendering routine culls all faces that face away from the camera. When rendering doublesided it doesn't. It just renders all faces in the object. Most shadowing algorithms rely on a face normal (The averaged vertex…
The default shaders that cast/recieve shadows won't render backwards facing polygons, meaning they never get written to the buffer, and so you end up getting shadow information for the wrong thing. Either the shadow information of the other, forward facing, side or for whatever's rendered behind the polygon.
well the shader works on a "global" level - you would have to use different materials to make it work. so most of the time its just more efficient to duplicate the faces you really need - and still draw everything with the same material.
I think it depends on what you're rendering. If you have a large piece of cloth it wouldn't hurt to turn off backface culling in the shader. But if you modelled a dragon, which only gives backface problems with the wings, it would make sense to just model the extra faces.