In some environments, branches are rarely used. This means that if a developer wishes to work in parallel on two features, he checks out HEAD into two different locations. The problem is that using 'mvn install' in one checkout will overwrite the result of 'mvn install' in another. Of course one can write poms so that the version contains some classifier and then use 'mvn -Dartifact-classifier=first-checkout install', or, read from a file. Both are tedious.
Instead, it would be good to be able to tell maven to first consider some path under the checkout before trying a global local repository (for external artifacts).
To make this work when running mvn from a module subdir, maybe allow to write settings.xml in the root directory of the checkout. Then, maven should climb the directory structure until locating settings.xml (or reaching the global root directory) and read there. Using settings.xml in such a way has other benefits that it can be under version control. settings.xml will then be able to specify a list of local repositories, some absolute paths, some relative to it.
Another approach could be to allow this list of local repositories in the global settings.xml file and have an entry in each module's pom indicating where it is relative to the local repository (like the parent path attribute)