The filenames are different.
i fully understand the DOS style naming convention, sometimes called 8.3 (ie 8 char, followed by period, followed by 3 char extension). However that has long been obsoleted since the FAT filesystem existed. Windows should be able to tell the difference between a long name and a short name. XP figures it out just fine. Now why would windows 7 convert the files to 8.3 format before comparing the file names? To me, that's a bug.

Not entirely. afm160~2.jpg is very likely the same 8 character file name used for AFM1600L-Top-Vertical.jpg
Long File Name support is actually a major hack of the old FAT file-systems from the MS-DOS days, which created these kinds of file management strangeness.
It does surprise me that this got past Microsoft's QA department.