From Rust/Cargo perspective fortunately there's no significant difference. It still locks versions, it still publishes each crate separately, etc.
I see it as a progression — if some functionality grows too big, it gets its own module. If the module grows too big, its moved into a crate in the same repo and workspace, and if that has life on its own, its moved to a separate repo as a project on its own.