So is it not physically correct to see pure black when red light lights green wall? I thought that perfectly green (0,255,0) wall absorbs all the red(255,0,0) and blue(0,0,255) spectrum (that's why it is green). Am I not right?
There is no simple answer.
The problem with calculating only in sRGB/wideRGB/XYZ color space is that you calculate the result for only 3 color samples, while in reality the number of "samples" (wavelengths) is infinite. This is what spectral rendering solves - when implemented correctly, it actually computes the result in all possible wavelengths (but they need to be sampled since there is infinite number of them, so the noise will be increased).
tl;dr: spectral renderers provide more accurate result but are slower than sRGB/Wide RGB/XYZ renderersBUT
completely another problem is
inputs. Today nobody has spectral inputs. You cannot just look at a surface and estimate its color as spectrum, while you can do that for sRGB. In fact, there is
infinite number of DIFFERENT SPECTRAL INPUTS that create the SAME VISIBLE COLOR for human eye (and sRGB). This is called metamerism. This means 2 spectrally very different colors can be perceived as the same by human (and have same sRGB values). But they might behave differently when you shine different light on them. It also means single sRGB color can be interpreted in infinite number of ways, all correct.
Now this is in essence the part that Corona does differently: you still input colors with sRGB values. But Corona interprets the SAME VISIBLE COLOR as a DIFFERENT SPECTRAL INPUT. This means that some operations will come out differently (like in your example, green+blue is not black).
We cannot say that sRGB or Wide RGB is 100% correct or wrong. User just inputted ambiguous description that Corona chosen to interpret differently. But Corona Wide RGB interpretation of color is closer to reality than sRGB for all natural light sources and for all material colors - Corona interprets spectra as being more smooth and less spiky than sRGB, which is what usually happens in reality. This is why we use it.