You can construct this situation, that's correct. I think the important point here is how shadowColor.rgb is defined. Is it defined as a multiplicative value (as I used for my last post) or a subtractive value? For white colored light this is the same but for color light it is not the same. I always thought the multiplicative value is the right one. After all simple diffuse shading is:
fragmentColor = lightColor * albedo