Packages like ui-router allow runtime change of $stateProvider but it requires caching of $injector during the app.config phase. As angularAMD already does this, exposing this as .config method allow for post bootstrap .config call. Here is a sample implementation of lazy loading of $state from ui-router:
http://bl.ocks.org/marcoslin/b59cfa9a9a44bde04f9f