Complete separation of model, view and controller has been a best practice for building websites a long time. We embrace MVC and many more best practices to make it easy for you to use the power of Zotonic.
Model. View. Controller. It is the way we all should build our sites.
We made Zotonic with models, viewers en controllers. It is good to separate responsibilities.
Better is to let the programmer program and the front-ender make her HTML, CSS and whatnot.
Best is when they don't need to bother each other. Unless they want to discuss the project and drink some coffee.
So we enabled the front-ender to have read access to almost all available information in Zotonic. Templates can directly call queries, fetch page properties, check configuration keys, and so on.
With Zotonic the programmer can help the front-ender with tactical cache instructions and tips on how to speed up things. Information that is reusable between projects.
The programmer does not need to make yet another controller, or adapt some controller to give some extra information to the template. And the front-ender does not need to wait for the programmer.
Zotonic lets the programmer and the front-ender do their work.