I want to what is the reason for this
The reason is that rendering is not physics - in rendering there is no light propagation, illumination is a property of the surface only. So if a surface is supposed to look illuminated, the information must be transmitted.
Generally the more physically correct this should be the more expensive that is - you might for instance observe for the compositor that lights do not illuminate fog properly and that they can shine through solid objects without casting a shadow - or that, unless you insert an object for it, you can't see the light source itself when you look into it.
The answer in all cases is the same - the code stops getting the information to a surface at some point because it is getting expensive, so what you see is never real, but aimed to look okay in most conditions.