FWIW, if anyone else comes here - if you’re disposing of individual nodes in a scene, DO NOT iterate via scene.transformNodes.forEach() ! If you call transformNode.dispose() inside your iterator, it will modify the array out from under your iterator causing nodes to be skipped seemingly at random.
I ended up copying the array first with splice( 0 ), then iteration became stable despite nodes being disposed.
Yes I tried scene.removeTransformNode() instead - no help there.