The interior (i.e. not occupied by a world brush) space of a BSP map is split into visleaves. Visibility between these 3D volumes is calculated when the map is compiled, and embedded into the map file for use by the engine. Like brushes, leaves are always convex.
The image to the left shows how leaves might be created in u-turn corridors (gaps between them have been added for clarity). There is no line of sight between leaf 1 and 3, and therefore when the camera is in one the contents of the other are not drawn. Calculating this is as simple for the engine as glancing at the map's embedded visibility chart.
But there is a problem with leaf 2. The contents of all three leaves are drawn when the camera is within it, frustum culling aside, even if the left-hand wall completely fills its view. There are tools to overcome this that we'll look at shortly, but keep in mind that in a lot of cases fixing the problem will be more expensive than simply drawing the less-than-optimal scene.
Bear in mind at all times that displacements, point and brush entities (including detail brushes) don't affect leaves. Create nodraw world brush 'foundations' if this is a problem: it's quite common for displacements to be created as detailed 'skin' on top of a world brush skeleton, for example.
Note: World brushes with $translucent textures do cut visleaves.
Warning: Leaves cannot be created if your map has a leak.
Tip: Leaves are split every 1024 units along the xy-plane regardless of brush geometry in order to break large areas down. Hammer's grid is highlighted to help you accommodate this.
Note: Leaves work vertically as well as horizontally. Treat skies as extensions of the streets and rooms beneath them.