When reading source code for pre PR4 controller extensions, it was easy to determine what views, models, and stores a particular controller is to manage. That pattern worked well in the direction of the "Self documenting code" practice.
Moving views, models and stores to the application really goes against self documenting code as controllers often are specific to a certain view and/or model. I initially liked the idea of centralized configuration, but am now against it. Application definitions will become bloated and hard to manage/maintain for larger apps.
While thinking about MVC for ST2, please keep in mind that this code will most likely be used for Ext JS5, where tens of views, stores and models can pollute the application definition.
Just look @ the app.js for the kitchen sink demo. Imagine if there were an equal amount of models and stores listed there.
One thing I must say about the older model is that the dependency chain was clearly defined. App required controllers, controllers required views, stores & models. If i did not want to include an entire branch of application, all I had to do was comment out the controller. At that point, the controller and its associated views and models would not get required, thus eliminated in one easy step.
In this new model, I have to remember: What controller requires what models, stores and views? Did i get ALL of them in the app.js? This leads to potential pollution in production apps.
I'm sure the team has a really good reason for making this change. I just can't see it.
I would love to hear what the community thinks.