This is a concept I thought a bit about before. To me, it seemed most useful as a tool to use like a profiler, rather than a realtime LOD system. Using it to determine the amount of detail you should use for various assets. Source engine levels are quite static though.
The GPU provides ways that allow you do implement algorithms to do the calculation of visible pixels per object. You could do this either similar to histogram generation on your id-buffer, or incrementing a counter for each object's pixel that passes depth test. That is still not super cheap however and it does mean you…