I don't know what is your name, but I'm sure you wouldn't like to be called csOUNd1 or something like that, would you?
Likewise, Java class names are case sensitive, and the CamelCase name of the class inside the file must be the same as the case of the .java file.
Web files on a HTTP server are also case sensitive. InDeX.HtMl is not the same as index.html. However, when testing locally, the local browser will ask the local http server (or whatever development tool provides the local service) will request "index.html", and the *stupid* file system will return "yeah I have an InDeX.HtMl which is the same". Everything works until you go to production and everything fails.
And then you know it failed, and do a rename of the "InDeX.HtMl" into "index.html", and the *stupid* file system "may" say "sure, I'll pretend I'll rename it, as for me they are the same, so I'm gonna say I did it, and did nothing".
I understand that for most people (me non professionally included) the name of a image file is a bit irrelevant, but for professional usage, we don't want random ghosts hunting us down with this kind of problems.
Just look at this madness on the command line:
$ echo a > FooBar
$ cat foo<tab> <-- no expansion as there's no file named foobar…
$ cat foobar <-- …or is there? some file exists of course
a
$ echo b > foobar <-- I've created a small caps foobar now right? it's a new file!
$ ls *o*
FooBar <-- nope, it's a completely new file, but it's still keeping the previous name
$ mv FOOBAR foobar <-- wait, all caps?
$ ls *o*
foobar <-- and this is where everything failed for me, as "mv" does the right calls and does rename it properly, but some apps (Eclipse), specially in combination with git hooks, may not rename it properly - "maybe" it was a bug on HFS that is solved on APFS though. Eclipse would rename FooBAR into FooBar. Git would see the change and ask for the differences between FooBAR and FooBar (which are none, besides the filename), but depending on how long it would take between the rename and the fsevent hook, the HFS could return "what do you mean, FooBAR is exactly the same as FooBAR", or could return that there were really a rename. This *****. Pure madness.