Why are we using lazy initialization in this method and similar methods? Is this to avoid a performance penalty? Or is it because there is state in the object being created that must be carried forward?

If the lazy initialization is important a spec should convey this and describe why.