Ok, I repeated the process and I have further info. I was right in what I reported but my findings were not complete.
I first re-downloaded both the 5.1.2 install and upgrade zips (and pleasantly found that the DotNetNuke.com download pages have been changed for the better).
I then extracted all files to separate folders and did a compare (I use the Beyond Compare program) and found that indeed the files did match. Ah, but then I made a copy of the install folder, ran the install.aspx on the original install folder, did a compare of the two folders and found that the files had been changed as I reported before.
I haven't taken the time to apply the upgrade as I would have to first create a DNN installation to upgrade. But, I did do a spot check of a couple of the files in the upgrade zips and found that they have the same files as the install zips (which are different than the files in the bin folders). So, it appears that if I were to apply the upgrade to an installation I would end up with an upgraded installation that matches a fresh-install installation and all would be good.
The end results seem to be correct and I can guess, rightly or wrongly, why old versions of the files are in the bin folders to begin with. At least some of the files need to be in the install package bin folder so that the installation can load and run the install.aspx. I'm not sure why those files can't be the current versions; maybe it's something to do with compatibility with an installation that's being upgraded and needs to be able to first load properly to so that it can run the install.aspx?
Thanks for hearing me out, seems that this has mostly just been a learning process for me.