You should use Maven multi-module when you want to execute the same action, compile
for example, on many projects.
If you want to compile all your application tiers in a Maven multi-module project you necessarily have to find a trade-off between module consistency and build automation.
So I think, in the given architecture, your solutions is good compromise: declaring compiling dependency, and avoiding the circular ones, lets you leverage the Maven reactor to sort compilation modules leaving you free from sorting them.
On the other hand you might revise the architecture decoupling view and business tier by using the controller tier to transform view domain objects into business domain objects (view --> business), and to transform business domain objects into view domain objects (view <-- business).