He was talking about the chain of function calls not crates. You still have that in your top level crate.
Not the end of the world but I do think defending the proliferation of error types in typical Rust projects is copium.
There are plenty of reasons you can complain about Rust's error handling, but "proliferation of error types" feels like a misunderstanding of how Rust error handling works in the first place.