Hmm, not sure I see why this approach wouldn't work? It's just deleting fully hidden polygons. It wouldn't change the quality at all, and the processing time should be quite quick since you're just checking whether the polygons are exposed or not?
What if there's thousands of polygons however? And how would you check if they're exposed? This requires pretty advanced techniques to stay manageable. We've had 4 or 5 programmers bend over this so far, to no avail.