The explanation for the limit with weak clients did not fit my understanding of the technology.
As for your explanation. Here is the thing. The upload happens in a zip. For whatever reason. What does the server do whith that? Expand the zip afterwards or host a zip as a virtual place? Does the game get served as a whole or in tiny bits? From a quick google and what I experienced so far, games are served as a whole upfront, but I assume that is just because many games just load all their assets, and the tech could do it in tiny pieces on demand.
But either way, why would it cost more to serve the same amount of data, be it upfront or on demand? If you serve a 50MB game it will not get bigger, just because it is 2000 files instead of 1000. There is tiny amount of overhead of course, but bottome line is:
It is more expensive for the server to provide 1000 small files than a single large one.
Why? And on what scale? (Your statement is untrue, for all I know, but maybe I am mistaken) Hosting costs are typically in transferred volume and not in number of served files. Especially if they keep it in a zip. Then you do not even put extra strain on the file allocation table.
If you search for html5 game file limit you will learn quickly that this is an itch.io peculiarity. It has no technical, nor financial reasoning.
You can dig up an old statement from leafo, it seems to be a concern for the export of some engines that do this bad. Like rpg maker or whatever. If you develop directly in html5 this does not seem to happen (abundance of files). The recommendation or chain of logic as I understood, is this. If you have so many files, you better provide your game as a download - since your game dev tools were optimised for that, and not html5.
And while internet connection is not an issue, certain browsers might be very bad at handling 10k files for one web page. (Or rather, if the game were developed directly in html5 and does indeed would have so many files, than it would run well. But what I see is this loading all at the start, and html5 is not made for that. Loading only the parts of the game you actually play would be a good idea. But small time indie devs more often than not just hit export on their file hungry rpgmaker engine and that thing initializes with all files and defeats the purpose. Or so I suspect).