Current build system has quirks, and it has well-known limitations.
1) If you change code in "core" and or "linq4j" modules and you want to check "cassandra", you need to "mvn install" those modules first otherwise "cassandra" would use "core" from the local Maven repository
2) If you want to see how Calcite plays together with Drill, it has to be multi-step as well. You can't just change some bits in Calcite and just build/test Drill
3) Maven builds seem to be single-threaded by default. For instance, checkstyle/forbiddenapis always goes before compile, and it does take time. I happen to disable checkstyle for local checks.
4) Maven plugins are hard to write. You can't just have a pair of classes to be used during the build.