There is a HUGE assumption that there is only one light source which is not always the case, particularly in an urban environment. Street lights, moonlight, reflections off of buildings, etc.
Still, interesting work.
There's a phenomenon I've observed repeatedly. On a bright but overcast day, while driving on a freeway, I frequently see a car ahead of me casting a shadow on both sides. Nothing mysterious about it, since diffuse light is coming from the entire sky. However, I wonder how their algorithm would handle that.