Rather than force code structure to be in a monorepo so that everything has the same context, one can get that same context by developing a CI system that has support for dynamic context. That, along with rule execution and constraint solving (a la prolog), allow for creating a CI system that allows for dynamic creation of cross-project
(environment,context) tuples for use with testing. This feature becomes invaluable when coordinating large sweeping refactors across multiple repos without the use of extensive people-hours of testing and dark-releases with feature flags. Even with said feature-flags, it allows the coordination of the CI to be done much easier (like with branch names as a trigger).
Briareus is the only build system that I know of with this property.