One of the trickiest areas of mapping with an open, outdoor environment like this is optimisation. Traditionally with the Source engine you would use the tops of buildings to create invisible skybox walls that restrict visibility to other parts of the level, but in Left 4 Dead this can severely hamper the Infected team's ability to find advantageous points to attack from. Hunters in particular rely on high rooftops to pull off heavier attacks. I've tried to bear this in mind when designing the levels and find a happy medium but I certainly now appreciate why Valve had to block off so many areas in their official maps, much to the frustration of the forum users.
I'm finding that I'm using a slightly unusual system of developing the maps in this campaign. Maps 1 and 2 are right next to each other and in one area there is clear visibility between them, plus of course they share a safe room as the level transition area. Map 3 involves taking a shorter route through both previous maps to get back to the start. Because of this, I've been creating the entire campaign in one single VMF file and compiling it as separate BSPs. When the whole alpha's finished I'll delete the irrelevant parts out of the maps that they're not needed in and add detail to the bits that require it.
In retrospect, there are probably more efficient ways of doing it. After starting this campaign I learned of the usefulness of Valve's new instancing system, allowing you to reference other maps within the editor. The system seems ideal for creating areas that are shared by two or more maps, such as safe rooms or weather settings (something that my campaign features quite a lot). If I knew more about that when I started I would have probably taken full advantage of it, but it seems too late now and it would probably take a lot more work than it's worth to re-organise my maps, so onwards it is.