The "boring" set of tools described here does not enable reproducible artefacts. This is a huge weakness of the ecosystem.
But the poetry.lock contains hashes as well.
Pip-compile in the most common use just creates a requirements.txt with everything pinned to a given version.
I think you can do hash stuff with it, but haven't used that part.
"Some platforms need newer versions" is the default case; don't make your tools fight it.
That said, package managers that do timestamp-based version filtering would be very useful.
It's been repeatedly not solved by the new tool the Python ecosystem comes up with every few years, IME. (It reminds me of an old quote I can't find about how every new version of C++ contains new features to fix the problems with the new features in the previous version of C++)