Which idea is behind this approach? Is it some high-level programming pattern which has a lot of advantages?
The analysis part of this is sometimes referred to as a Use Case (feature) called "Start Up." Craig Larman's book on OOAD calls it the initial domain object idiom (not quite a pattern):
How do Applications Start Up?
The startUp or initialize system operation of a Start Up use case abstractly represents the initialization phase of execution when an application is launched. To understand how to design an interaction diagram for this operation, you must first understand the contexts in which initialization can occur. How an application starts and initializes depends on the programming language and operating system.
In all cases, a common design idiom is to create an initial domain object or a set of peer initial domain objects that are the first software “domain” objects created. This creation may happen explicitly in the starting main method or in a Factory object called from the main method.
Often, the initial domain object (assuming the singular case), once created, is responsible for the creation of its direct child domain objects. For example, a Store chosen as the initial domain object may be responsible for the creation of a Register object.
In a Java application, for example, the main method may create the initial domain object or delegate the work to a Factory object that creates it.
He later gives the following guideline for choosing the domain object:
Choose as an initial domain object a class at or near the root of the containment or aggregation hierarchy of domain objects. This may be a facade controller, such as Register, or some other object considered to contain all or most other objects, such as a Store.
The latter refers to the domain model for a Point of Sale application, where Store and Register are classes.