When developing in Grails, it is not necessary (or advisable) to use an IDE for compilation. The grails "run-app" command handles compilation and can reload most classes. When it cannot reload a class, it normally reloads the application completely w/o restarting the Java VM.
However, it seems that there's no way to prevent IDEA from inserting the project's output directory into the launch classpath.
If a developer accidentally builds the project with the Make button, then makes changes and then starts the app with the run/debug configuration, the old classes get picked up earlier in the classpath instead of the current classes.
This creates a very frustrating in which the application works as expected when run from the command line, but not when run through IDEA. The only way to detect that idea has inserted the project output diretory is in the class path is to look several thousand characters through the launch command line and find it.
To avoid these problems, there should be a checkbox in the run/debug configuration for "Include module output directory in classpath."