While I completely understand why Maven throws an error when -pl/--projects defines/contains a non-existing project, I don't really see why the negation of a non-existing project yields the same error, e.g.:
c:\_dev\git\gitflow-incremental-builder>mvn -pl !foo
[INFO] Scanning for projects...
[ERROR] [ERROR] Could not find the selected project in the reactor: foo @
[ERROR] Could not find the selected project in the reactor: foo -> [Help 1]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MavenExecutionException
I'd say that at most this should be a warning, not an error.
This change would come in handy to reuse scripts with certain default options (e.g. quickly build everything without tests, checkstyle, exclude moduleX, etc.) on different hierarchy levels of larger multi module project.