I don't understand what PVS is in this context, but it seems any attempt to completely automate this would struggle with false positives.
There might be >350 polys visible from weird camera locations, but if the player is never there in normal gameplay you don't care about them. If they do end up in such a weird position in one game in a thousand (say a rocket jump lifts them up to somewhere normally inaccessible) it's not the end of the world anyway, the game will just render slower for a few frames.
PVS by my understanding will only ever over-count visible polys.
It is essentially a set of all polygons that are visible from any point inside a fixed volume, but the camera only exists at a single point inside that volume so there will probably be some polys that the camera has no LOS (though I suspect these would still be 'rendered') to and a bunch that are out of the view frustum which will not be rendered.
edit: To observe this you can also load any HL1 engine game, run `r_speeds 1` in the console, then it will show you how many world polys are currently being drawn in the corner of your screen, which is probably the count referenced by John Romero here.
There might be >350 polys visible from weird camera locations, but if the player is never there in normal gameplay you don't care about them. If they do end up in such a weird position in one game in a thousand (say a rocket jump lifts them up to somewhere normally inaccessible) it's not the end of the world anyway, the game will just render slower for a few frames.