When an Ember app boots up, it primarily waits for the DOM to be ready before it can boot your application. Though this is a safe check needed in order to have your custom event handlers attach correctly to the DOM, it may not be always necessary. In Ember all event handling is attached to the rootElement
by default.
Waiting for the DOM ready may not be always necessary and would be a disadvantage in certain scenarios. For example, the app's index.html could also contain the API data needed by that route in a pre-fetched fashion. The index.html could be served in chunks (ie as the data is available we would be sending it to the client). When the client app boots in the browser, it can use this pre-fetched data to serve the route. When serving the base page in chunks (using Transfer-Encoding protocol), the browser fires the DOM ready only after the last chunk is sent down. This could cause the DOM ready to be delayed and the Ember app cannot do anything until then.