Why not to separate logic from presentation.
This is not specifically AI, but has some relevance to coding and human interaction. When you think of an application like office, you are forced into the program's 'controller' (MVC) in the sense that you must follow a specified process. Why should I be required to select a data range prior to building a chart, or validating a function? I should be able to build my charts first then select the data.
When coding it's easy to build a controller that interfaces with a model or domain, and the view gets updated when the model changes. Where the view only has access to the model via the controller, this is sound coding. But the problem is the logic enforced from the controller doesn't have to be the logic for the view. The view or presentation requires its own process logic, where the processes or flow of interaction is not dependent on a policy based controller. The controller needs to be flexible enough to adapt to multiple flows of interaction, suitable to the user.
