A nested module looks like a deeper layer of the same system. It is not.
Terraform does not expand visibility when you nest modules. It compresses it.
Every module boundary removes access unless you explicitly pass values in or expose outputs back out. Variables become the only way in. Outputs become the only way out.
That mechanism forces discipline.
If a value is not passed, it does not exist. If an output is not re-exported, it disappears before reaching the root. If a provider requirement is missing, Terraform does not infer it correctly.
This is where most configurations fail.
Nested modules are not about organizing files. They are about controlling contracts between layers of infrastructure.
That control is what prevents unintended changes from spreading across your system.

