Frustum culling strategy

Regarding 6/, you could do your calculations before _evaluateActiveMeshes is called (this is where we loop over all the meshes and do the culling tests), e.g. in scene.onBeforeCameraRenderObservable then define scene.getActiveMeshCandidates with your own implementation, which returns only the visible meshes (the default implementation returns scene.meshes). For these meshes, you should set alwaysSelectAsActiveMesh=true or skipFrustumClipping=true to avoid testing them against the frustum and thus gain performance.

Note that overriding scene.getActiveMeshCandidates is what the Octree does.