For rust it's sometimes useful to split it like that, because it makes it easy to publish small subsets of your project on cargo. Say you develop a custom datastructure, or an extension on Streams.
The same applies to other languages to some degree, but crates/cargo just makes it very painless to grab crates that are on a seperate git.