Couldn't this be solved by "map compilation"? IIRC, Hammer etc. did something like that. Occluded faces were removed.