Cargo is i) not a compiler, and ii) moving to the sparse index protocol [1] that do not fetch the whole index anyway. And even the older git protocol won't fetch the same data twice.
As a fairly avid Rust user I can say I'm excited to hear that! Just playing a little devil's advocate for fun.
That said I was moderately upset by this Friday after carefully assembling a development container for a project at work. Guess I'll have to make something persistent somewhere if I don't want to twiddle my thumbs before each build.
[1] https://doc.rust-lang.org/nightly/cargo/reference/registry-i...