I'm not sure I follow this. If I do ```pip install foo``` and foo 1.2 is the latest version on PyPI (sdist only), I'd expect to build a wheel in the cache and install it. If I later did the same install to a different venv, I'd expect to check PyPI, find there's no newer version, and use the wheel from cache (even if the project had added a 1.2 wheel to PyPI in the meantime). But if there is a newer version, why wouldn't I use that?

Your comment "it's debateable whether a non-versioned req should just use what's in the cache, or check for the latest" implies that you're thinking that ```pip install foo``` will get a 1.2 wheel from the cache even if 1.3 has been released on PyPI. I don't think that's right.

Looking at #878 I see that this may well be what you mean. Maybe there's a use case for it, but I do *not* think it's the right default. A "cache" should speed things up but not change behaviour.