What's the justification of multiplying colors together? In Phong shading model (and other shading models as well), the light color is multiplied together with the surface color component-wise. I want to know the justification for this. Is this some what related to the physics of light?
When you multiply colors together the surface color acts as a filter. Remember that colors are scaled from 0 to 1.

That way with white incoming light a green object will remain looking green.

This does bring a few issues because physical light isn't as orthogonal (where the 3 primary colors are actually overlapping frequency response functions) but for the vast majority of cases you can tweak the values enough for it to stay looking realistic.