Okay...You're saying that things can be classified as "things which need to be seen/not seen for purposes of display or AI" and "things which actually break up the LOS a bit"?
I can see that if you're standing there and someone tosses a bucket into your LOS, you don't need to do many calculations--just say "Bucket is on this tile. That tile is inside five critters' LOS on a square already marked as visible. So, now it's on a list of things they can see."
And I can see that the only time you need to update the actual LOS is when something happens that can actually block vision. For example, someone opens a door. But when someone opens a door within your vision radius you pretty much need to run the whole LOS check again, because you don't know offhand which squares that door was blocking your vision to.
I DO think that lighting complicates it though. The hard part of LOS isn't just "which items are near me", it's "what squares are visible regardless of contents". If your torch burns down a little, some squares may become hidden because they're dark. Heck, if someone opens a door outside of your max vision range, it might let light spill onto previously dark squares. Still...I guess I can accept that lighting will be its own, separate thing, and only one copy exists of the light map (as opposed to the LOS projection map that every critter has a copy of). So nevermind the lighting I guess? Maybe it's not that important.
Anyway. Yeah, only updating that LOS projection when you have a reason to, that makes sense. If you're standing still, you only need to update it when a door opens or something. That'll save you lots of time.
Unfortunately, you do always need to update that projection whenever you move, because now maybe you can see behind that tree... and, well, even if the PLAYER is standing still, chances are there's always twenty NPCs moving around, and they all need to update their own LOS every move.
Or am I missing something? Because I think every critter needs to project a lot of rays from their new position each time they move, to tell what tiles are visible or occluded. And I think THAT is the time consuming stuff.