We have code in various places that deals with fallout from making a RenderLayer composited, or not. RenderLayerCompositor::updateBacking() has this: if (layer->parent()) layer->computeRepaintRects(); and if (layerChanged) layer->clearClipRectsIncludingDescendants(PaintingClipRects); It's not clear if there are all doing the right thing. Why doesn't computeRepaintRects() have to be called for all non-composited descendant layers? We should have one bottleneck for "my compositing state changed, do stuff to descendants".
Also, some of these things should happen when a backing's 'm_requiresOwnBackingStore' changes.