We've reached the point where we only put things on Layer 0 if the "apparent" layer is controlled by a Style. For example, Parcels are all on layer 0, but that's so the "apparent" layer of the parcel lines can be set using the Parcel Style. This means we can't use commands like the old LAYOFF and LAYFRZ commands to pick objects in the drawing - instead, we may have to figure out what layer is actually controlling visibility, go to the Layer Manager or Layer Toolbar, and turn off or freeze the layer there, rather than picking the object in the drawing. This is an annoyance, but nowhere near as annoying as some other aspects of Civil-3D.
The thing about this that still constantly really bugs us, though, is the way Parcel labels actually "live" on the same layer as the Parcel Segment they are attached to. That's something that drives us batty, and we are dearly hoping gets changed by Autodesk in the next version to work more like the General Line/Curve labels (which actually aren't working completely the way want them to, either, but are better than Parcel Labels).
Basically, the way I've started to view it is that Styles and Layers should constitute different ways to "slice" objects. In other words, BOTH must be used in order to gain complete control, but each aspect is used differently. As an example, lets take surface styles. We can define a style that has TIN triangles turned on, and another style that has TIN triangles turned off. But we can also define it so that all our Surface Styles put the TIN triangles on a special layer, and that layer can be thawed/frozen, turning on/off TIN triangles for ALL surfaces in the drawing without needing to go in and change the Style assigned to each surface.
This is basically how I've been trying to get everything setup. We have it so that visibility can be largely controlled by Styles. But these styles also try to make wise use of Layers, so we can also use Layers to affect the display of many different styles all at once. In a sense, the Layer controls are used to "cut through" the Styles. Getting this all setup has been interesting, and has involved lots of mutations to our template, but we're starting to get it into a shape where it works pretty well for the most part. It is definitely confusing, though, and it would not be easy to explain to others exactly why everything is setup the way it is. And it takes some time for new users to get the hang of it. But it seems to work relatively decently once it's all in place.
Oh, and to keep all this working, we also keep that "Immediate and independent" control turned ON at all times. To tell you the truth, I haven't tried using Civil-3D very much with this setting OFF, but the few times I've tried messing with it, I always end up turning it back ON relatively quickly. That seems to be the setting we want. There may be special cases where it might be better to turn it OFF, but I haven't discovered one of those cases yet.