The architectural cost of Rust’s orphan rule doesn’t show up on day one. It shows up when you’re six months deep into a monorepo , the domain model is clean, crate split looks sane — and then you try to wire two libraries together, and the compiler just says no. No negotiation, no workaround at the language level.