If you call it for a second time, it will simply raise an error. It will only update the value of global_time if its None initially(I should check if its an instance of Symbol). Because its a class variable, it will not create new instances of MovingRefFrame when its set. While its None, if you try to initialize a frame, it will raise an error, specifying that a time variable has not been defined.
And about the World class, I guess we scraped the idea? And I don't think the design here is violating immutability? If I disallow redefinition of the time variable?