Yes, it's to ensure only one instance is created. Doesn't make sense to have two XenForo_Session instances during the same run.
As for more advanced usage, you can make some fancy boilerplate code to make a self contained class where it manages its own instances, but I have yet to see real life usage.