check_finite_geometry walked every node after each changing command, so edits slowed down with the document. It now checks the layers Document::changed_ids reports (the diff skips shared structure), keeping the same refusal and the untouched-broken-layer exception. A rename with 500,000 layers: 29.7 ms to 0.13 ms.