Depends on the architecture I guess.
In my opinion it's better to have a manager structure than only controllers because you can easily switch between API or MVC so the businesslogic is not bound in the facade pattern and testable.
But I tend to use the managers only as a "state"-wrapper and the logic is inside of service classes who are actually stateless ... with a lot of traits so I can compose the functionality that I need but that increases the dependencies because of the traits.
I use a lot of metaprogramming as well and wrote some annotation contracts with factories and the manager gets the DI so i can mock everything ..... but still rather complex for an simple task.
In the end I'm as curious as you are if there will be any useful input because usually people just aim the designpattern canon on those issues or suggest a paradigm change like "use functional programming" or "AOP" ...
you've asked a very good question indeed :D