I also think it's known by now why that happens, but let's rehash it in a clear way:
Face splitting happens when two brushes touch or intersect. The surface of one is splitted into convex surfaces, so the touching surface can be safely removed.
If you were to tie this touching brush to an entity, the face splitting wouldn't occur, but there would also be a small part of that otherwise splitted face that is never seen.
In fact, face splitting happens between every brush that's in the same entity. You can see world brushes as being part of the big world entity here, as a matter of speaking. So for a railing, if they're part of the same entity, then splitting occurs and naturally also the unseen face removal.
The natural solution is then to put both brushes in different entities.
On a vaguely related note, putting too much opaque surfaces in front of each other (sprites and beams count as well here), you're filling the fillrate, which means, the scene needs to be recalculated for every of those surfaces. Needless to say, that hurts performance a lot once you've used enough layers. Polycounts don't matter here.
Not that most of us will ever do things like this, but hey.