Agree.

 ol3 has layer groups (ol.layer.Group) and I'm wondering if this could be used to ensure that highlight layers are always above overlay layers, and that overlay layers are always above background layers.

This is something I hadn't thought of before. Worth exploring in my opinion.