It’s worth noting that Cargo will be completely offline if you’re working on an existing project. Only when adding new dependencies, or when creating a new project, will it require a refresh.
This is still quite annoying for developing offline, but I feel like it’s not a bad policy. Cargo doesn’t (currently) want you to start a new project or a new dependency with old packages.