When extracting files from cache, the modification time equals the time of extraction instead of the original modification time of the file.
This is a problem for Rust since Cargo checks the staleness of some of its dependencies according to mtime. As a result, multiple dependencies are rebuilt for every pipeline. I've set up a basic Rust repository displaying this problem here.
A simple fix is to tarball the cached contents and then cache the tarball through Pipelines (extracting this tarball at the start of every step), but ideally, such a workaround is not necessary.