Question/Idea: Can we compile umbrella apps in same order they're started so that implicit dependencies are impossible without causing warnings?

So I was just chatting with a co-worker about pros and cons of Umbrella apps, and we’ve occasionally had a module that didn’t have tests that had dependency on an app in another umbrella app that wasn’t declared/intentional. But it got me wondering, why can’t we have the compiler start clean from the deepest dependency in the umbrella app, and if using --warnings-as-errors have it warn and error if any module/function is referenced that’s not defined in that app or one of it’s dependencies? Maybe I’m missing something, or maybe there’s already a way to do this? (we didn’t always have warnings-as-errors turned on in our deploy compile, so I suppose I could be remembering from before that?)

Curious for thoughts or ideas.