I just did a bit of testing, and found that we have not been burned by this behavior of proceeding past the first dune-workspace / dune-project file only by dumb luck. No home directories need to be involved. With the current behavior, as soon as one of these dune- files is added in an ancestor directory of one of the ‘project’ directories below it, with its own dune-workspace and dune-project files in the repo, the build for the lower-level project is broken.
Perhaps there is a way to modify the build scripts to be insensitive to whether there are dominating dune- files, but I don’t know it. Perhaps it doesn’t matter if the targets dune is asked to build are only @ aliases, but in our setting we need to specify particular targets, and they end up having names that are not independent of the location of the _build directory.
I would very much like a setting that could be put in dune-workspace or dune-project files that would indicate that dune should not continue up the file system.