Thanks all.
Layers... lots and lots of layers are the key to managing my sanity. Off the top of my head, here are the major layers which lets me turn things on and off:
AlphaBlendBase (solid part of an alpha blend patch)
AlphaBlend (transparent part of an alph blend patch mesh)
Ammo (satchels, anti-tank ammo boxes)
Buildings
BunkersAndTrenches
Portals (portal brushes)
PortalStructure (internal skybox walls)
RiverBank
RiverBankBlend
RiverBase (a set of flat brushes at -32u underlying the river mesh)
RiverWater
RoadBase (all of the road patch meshes)
RoadDecoration (bridges, puddles)
Skybox
SkyboxCeiling
Spawns
Terrain (all terrain mesh)
TerrainBorderClips (the NOCLIP border brushes)
TerrainBorderFoliage
TerrainBorderFoliageShort
TerrainDecoration (rocks, burned out tanks, walls, crates)
Vehicles
Weapons (pak guns, mortar positions)
...
I took a lot of ideas about how to construct treelines from Slyk's Barbarossa and Smolensk maps. Ponyri is also a good example of how to do interior treelines. But I've also done some things differently.
The treeline cores are comprised of a vertical brush that goes from the base of the skybox to the ceiling and is textured with the skybox texture. These structural brushes are then used to hang the portals off of. All of the other brushes on the map are detail brushes (bunker walls, buildings, etc). I'm controlling the portalling by hand. The VIS compile is around 800k at the moment and I'm 2/3 complete with portals. Terrain mesh runs up against the core structural brushes (that allows arty to explode within the treeline rather then falling through to the lower skybox).
Next, I surround the core structural skybox brush with NOCLIP border brushes. These brushes also stretch from the bottom skybox brush to the ceiling skybox brush. They ensure that players and vehicles can't get inside the treelines. These brushes also allow me to sculpt the perimeter of the treeline. I try to make the treelines bend in and out slightly at least every 500u. That's to keep the treelines from looking artificial.
Next, I add the "short" border foliage. These are vertical terrain meshes of a mostly-solid texture that follow the line of the NOCLIP border brushes. They're around 200-300u tall (about half the height of the tallest model tree on the map). I draw these out at around 1000u in length, fit it to the border NOCLIP brush, set the texture, then split the mesh to avoid lighting errors.
Last, I add the interior border foliage. This is two layers of taller terrain meshes inside the NOCLIP border brushes. Height is similar to the taller tree models that are in use. They are anywhere from 16u to 32u inside of the outer mesh. I use two layers because tall treeline textures have deep gaps in them, so it's necessary to use two (or even 3) layers to give a more consistent height. These layers will be added during the very end of the mapping process.
So far it's working very well. It's very cheap on the framerate and looks decent at a distance. A lot of maps use extensive models along the map edges, but I'd prefer to use models elsewhere on the map. I do make use of tall pine trees along the border walls to help disguise that they are simple terrain mesh. But it only takes a handful of trees to disguise a lot of wall.
Treelines allow gunfire and shells (missles) to pass through them and I can always add weaponclip to the structure at a later date.
I haven't decided whether to surround the treelines with the foliage clip texture to make rustling noises as you move along the edge. Right now, there are enough pine trees around the edges to take care of foliage noise so I'm not sure it's needed. Most maps make use of foliage models along the walls to do the rustling noise.
You can see the treeline best in the following shot (the left side of the image):
At 40% complete, I'm only at 4900 brushes (4150 net) and 750 models. My target is 1500 models (excluding spawn entities) and 10k brushes.