Good to know! Just dug for it.
An example use case is a twitter client. I use YoruFukurou. I haven't closed it in a couple days and have over 6700 tweets. It'd be easier to just have binding working for that many elements but of course that's a lot of watchers. But it's not too bad. It could mean just writing more optimized code and not using binding but using events for those areas where binding would be too heavy.
I was pondering a conditional check to see if a $watch expression needed to updated, i.e. if the DOM element is not visible because it's off screen or display:none, etc. I haven't seen a way to conditionally enable and disable watchers in the source. I'm still wrapping my head around the flow of things. Like in a twitter client example if I clicked an item to favorite it, IIRC, that event triggers the whole update since there could be cascaded events that cause various UI elements to update.
So one way might be to make a helper for $watch expressions that checks if an item should be updated or not. That check would still have some overhead but still more performant than updating everything visible or not.
Thanks much!
Michael