Sort of a feature request, but also a question to other users about different approaches you like to use. I've often wished for a way of grouping layers in a heirarchy that is independant of layer order, like you can do in most 3D apps (or -ahem- node based compositing systems).
The ony ways of grouping layers that I know if in AE are:
1: Pre Comping (obviously creates a single layer from multipe layers, which has limitations in certain situations)
2: Pre-Comping and collapsing gemetries (makes management easy, but still has limitations of layers being outside comp)
3: Using nulls as parents (allows you to select, control and move groups of layers, but does not facilitate easy showing/hiding or re-use)
4: Using expressions (often problematic if you are changing layer orders around a lot to accomplish a goal)
5: Creating color-coded groups for easier selection (limited number of colors, doesn't help with anything besides selection)
Each has advantages and disadvantages and accomplishes different goals. I would love to be able to create groups of layers that could easily be hidden and shown in the layer panel; selected, copied, and re-used; contain expressions and parent/child relationships; and exist within a larger composition and be dispursed among other layers outside of the group. Using Nulls as parents is the closest thing to what I would like to be able to do, but is a bit more convoluted than I think it needs to be. It seems like the ability to put groups of layers into a "folder" that you could expand or collapse would be a helpful UI feature. If you could have a list of these "folders" in the Project window, similar to the way you have a list of solids, you could duplicate and re-use them in other comps, change the layer order around, etc, and still have a cohesive group of layers to manage as a unit.
Let's say you build an animation that has 50 3D and 2D layers, several expressions, and a bunch of keyframes. Maybe you would want to use it several times in different ways within a larger piece, but need to have access to all the layers in each instance. Also, you don't want to see all of the layers in the layer panel at once--you only really care about them as a group. One technique is to parent them all to a null, use select children to select them all at once, and shy layers to hide the layers you don't want to see in the layer pallette. The downside is that if there are already parented layers within the group it becomes very tricky not to screw up the heirarchy or any expressions. You're creating the null for no other purpose than to manage a bunch of layers as a group, but it can interfere with the relationships among them if you're not careful. Also, shy layers only gives you one level of showing and hiding to work with, which can be limiting if you have loads of layers in a comp. Simply pre-comping them, and then using collapse-geometries can work in certain situations, but it limits your ability to use things like track mattes, adjustment layers, shadows, and other relationships that require layers to be in the same comp.
Hopefully that makes some kind of sense. Please share any insights you have on the tao of managing complex groups of layers so that we all may learn!