Letters expand, then Luhn
An ISIN is 12 characters: a 2-letter country prefix, a 9-character national security identifier, and a check digit. Because the middle section can contain letters, they are converted before any arithmetic runs. US0378331005 expands to a digit string, and Luhn runs over that.
This is the same trick IBAN uses, with a different modulus at the end.
National numbers inside
Many ISINs wrap an existing national identifier. A US ISIN usually contains a 9-character CUSIP, and a UK one usually contains a SEDOL padded with zeros. That inner code has its own check digit, computed under different rules, so a valid ISIN does not confirm the CUSIP inside it.