Actually, it's weirder than I thought. The card I gave naded (that I wanted to use) was the same card that was used to confirm the reservation. The older card they billed to was neither linked to the reservation nor presented in person by me for this stay.
However, I had used that older card at this same hotel months ago. So I'm guessing they had the older card on file, and when they swiped the new card, it showed that there was an Amex card already on file with the same last 4 digits, and they presumably assumed it was the same card, and used the card they had on file, rather than the card they had just swiped.
This hotel's folios only show the last 4 digits for an Amex card, and so if their "match" system for repeat customers previous cards is the same way, I can see how it could tell one Amex card from another.
... But this last-4-digit confusion with Amex cards is a problem I see everywhere where companies keep cards on file. How many companies that keep cards on file present more than just the last 4 card digits when feeding back info about what car they have on file? (It doesn't usually result in billing errors this strange, but it does result in tons of confusion.) Is Amex educating merchants about the fact they need 5, not 4, digits in these situations??? I haven't seen any evidence of it!
Which of this should change: Zillions of individual merchants, or one bank (that does card numbers completely differently than any other bank)? It seems to me it would be easier for Amex to change it on their end than to successfully educate every one of the zillions of merchants about the fact that Amex cards go by the last 5 digits, not just the last 4 digits.