The problem highlited here is not that there are distinct compilation and dependency units, bit that they are organized in a flat namespace.
Anybody can create a crate like "aws-sdk-cloud" and have a crate that looks official but is not published by AWS (and is one character edit away from a legitimate AWS SDK crate)