I think you've made a very clear point. There are only two ways to make a consistent and reliable method of matching file names. You can make sure that every file name also includes information about its locale, and that every computer in the world which uses files has access to a complete set of rules about how upper and lower cases are to be matched in every locale, or you can have simple, direct bit-for-bit comparisons with a total disregard for what the bits may mean to humans. Guess which makes most sense?
It's not hard to write lower case "c" and "h" as file extensions. It is neater and easier to read filenames that are predominately small letters (that's why small letters were invented - they are easier to read).