I don't know if this should be considered a problem worth changing anything for or not, but:
If I download the original SRC_URI indicated in the dev-python/charset-normalizer-2.1.1 ebuild ( https://github.com/Ousret/charset_norma ... 1.1.tar.gz ), it is currently a 86023 byte file. If emerge ends up trying to use this version, it generates a size mismatch error (not consistent with Manifest) and fails.
In contrast, emerge normally downloads it from gentoo mirrors, which is getting me a 86024 byte file, which matches the Manifest file.
If I unpack both and do a recursive diff, there is exactly one character different:
diff -r cm-fromGentoo-wrongVersionPyFile/charset_normalizer/version.py charset_normalizer-2.1.1/charset_normalizer/version.py
5c5
< __version__ = "2.1.0"
---
> __version__ = "2.1.1"
Presumably (guessing) upstream released it with it the wrong internal version number, a gentoo developer grabbed and cached that version of the file, but then upstream replaced it in-place (same URL) with a fixed version.
Workaround: Obviously an immediate workaround is to just make sure your distfiles has the version from portage mirrors, that matches the Manifest file, despite the incorrect internal version. However, I don't know if this is really the "right" long-term solution. (Although watch out for the rename adding a ".gh" in the middle of the filename.)
Question: Does it makes sense for someone to update the gentoo mirrors, ebuild, and/or Manifest somehow? (Which might cause a window of time when there are difficulties when various distributed cached copies of the file and the Manifest being inconsistent with each other.)
(I stumbled over this unintentionally because I was getting weird repeated reset connections after only a few kbytes for this file, probably because of some combination of $DAYJOB's corporate firewall, the mirror I was using ( http://www.gtlib.gatech.edu/pub/gentoo , I think ), and my continued usage of a tweaked version of the the old long-treecleaned http-replicator proxy cache package. From emerge-fetch.log, it was erring out on the partial downloads and retrying (much slower than usual), and eventually emerge fell back on downloading from the original SRC_URI, ending up with an unexpected slightly different file...)



