I'm just copying what I saw here. I assume we want to do lazy instantiation, however in practice it makes sense only if we don't always call the getter and it seems very slim chance to happen as simple registration would load the object anyway.

I like lazy instantiation, but for it to make sense we'd need to do something about such registration cases (trigger specific registration hook when constructing service or later? so that we only register stuff when we're sure we're going to use it and need to load whole service).