There is no difference between registering your viewmodels on container or not
because ViewLocator.GetOrCreateViewType() creates a new instance of the viewmodel if not found in the container.
For me it would make more sense that the ViewLocator completely relies on the container and is not creating instances itself.