`provider.get(...)` can through for many reasons: factory function throws, constructor throws, misconfiguration, etc.
In any case, leaving injector in an inconsistent/unusable state after a user error will not do -- it might be needed to correctly report/log the error.