The Qt version of LDView has special handling for "file not found" where it does a fully case-insensitive search for the file after it fails to find the file using the case inside the LDraw model and all lower case. Unfortunately, actually performing the case-insensitive search is relatively slow on most *nix systems, but it is sometimes necessary. The command line-only version of LDView (used for creating snapshots and nothing else) simply tries the original case from the LDraw file and then tries all lower case. Fully case-insensitive is definitely preferred, but possibly not necessary, as long as you have a fallback that checks the reference with all lower case.
I know you didn't mention it, but I also have a comment about '/' vs '\'. It's a little know fact, but programs running in Windows can use '/' as a path separator for everything except for the "\\" that comes at the beginning of special paths like network paths. As far as I know, the only places '\' is required by Windows itself is on the command line, and for the "\\" prefix for special paths. So I have LDView internally convert all '\' characters found in LDraw type 1 lines to '/' on all operating systems.
I know you didn't mention it, but I also have a comment about '/' vs '\'. It's a little know fact, but programs running in Windows can use '/' as a path separator for everything except for the "\\" that comes at the beginning of special paths like network paths. As far as I know, the only places '\' is required by Windows itself is on the command line, and for the "\\" prefix for special paths. So I have LDView internally convert all '\' characters found in LDraw type 1 lines to '/' on all operating systems.