There are two different levels of this issue.
First, all primitive geometry (edges, faces) should be drawn on layer0 and should remain there. You should never draw or associate primitives with anything except layer0. Putting it on other layers will risk endless confusion because layers do not isolate geometry from other geometry; Groups and Components do that. You will get interactions between what you are drawing and other non-grouped primitives on non-visible layers! A Group or ComponentInstance does not require its primitives to be on the same layer as the container. So, there are downsides and no benefits from putting primitives anywhere but layer0.
Second, it is possible but inadvisable to put nested Groups and ComponentInstances onto a different layer than their containing Group or ComponentInstance. The reason not to do so is that you can get confusing effects when the layers of inner Groups or ComponentInstances have different visibility than the layer of their container.
Finally, yes, there are some plugins that can recursively move all the contents of a Group to a different layer. Search the Extension Warehouse or sources such as sketchUcation’s plugin store.