The motivation is, due to Play store's extremely long review times, to be able to update the singleton code without releasing a new revision to the store.
So it's not really creating it "on the fly", but it's creating it only once, after the framework was loaded and before the game itself starts.
Short naming - instead of using a singleton it's possible to just instance a node once, and refer to it by its full path in the tree.