FM8 — Schema/Contract Violation: When a module’s public interface changes without coordinating dependents, every module that depended on the old interface breaks. The risk is proportional to the number of dependents. A module depended on by twenty others is a high-risk change. A module depended on by zero others can be changed freely.
FM2 — Cascading Failures: A module that holds shared mutable state — a global configuration object, a singleton registry — creates hidden coupling. Changes to that shared state propagate to every module that reads it. The coupling is invisible in the import graph because it flows through data rather than code imports.