In my humble opinion, the default approach for directory structure in Phalcon is not too good for large projects. But it's a good thing, because probably most of the projects are small, and not need overcomplicated folder structure and other rules that apply to big projects.
It happens im creating mostly large systems like consiting 100+ tables in DB, with thousands of uploaded files, tens of admins concurrently working in the system + houndred of other sessions crawling the front-end.
Fortunately Phalcon allows you to create your own place for every model or view, it not need to be all in one folder, and that's what i did.
You just getting dispatcher out of dependency injector and then you have methods to manage those things like setDefaultController, setDefaultAction, setControllerName, setActionName, setParams. The same thing goes with Router and other components - just experiment with that.
I personally created somethig like boilerplate/backend admin panel generator together with components like jquery, bootstrap to accelerate my work, where all folder structure and few other things are different than default Phalcon settings.