Why are compile-time dependencies between modules transitive?

There are a couple of good posts explaining some of the issues and how to analyse them.

e.g. Understanding and fixing recompilation in Elixir projects, Implicit compile-time dependencies, https://medium.com/multiverse-tech/how-to-speed-up-your-elixir-compile-times-part-1-understanding-elixir-compilation-64d44a32ec6e