I think i see a win by factoring out object traversal on ever render tick, by caching the objects in the root scene on object parenting changes.
Today the Renderer in Satin does expensive calls to update / updateLists / updateScene
Theres important work to do, like calling update on each object so uniforms are correct, but the recursive gather of the child objects is redundant, and could be factored out so the render has no recursive gather loops, but rather just iterates over known IBL scenes, Renderables and Objects without needing to test a cast?