I guess I am doing something in between. In my project I don’t switch scenes. I have one main root scene that is always loaded, called ‘Global’. Its three main children are Scripts (just simple nodes, with different scripts for different aspects of the game that need to always be present), Entities (Spacial), World (Spacial) and Interface (Control).
The World has a chunk system that loads terrain as the player moves. Every entity (haven’t added any yet, besides the player) will get loaded and unloaded, each one as a different scene. That way it’s still object oriented, but everything is under a single scene the whole time.
The Global script has onready vars that reference to important nodes (like player, camera, etc), so I can pick them them up from any script in the game. That way, if I change the location of a node in the tree, I only have to change one variable and not one for all the scripts that call it.
Not sure if this is a good design, but I think it works for my project.
Did he maybe mean something similar, or did he literally wrote the whole game in one single long script?