fte does some interesting tricks
1: pak files are loaded by scanning for *.pak, which means it gets more than just pak0.pak, but also pAk0.pak and stuff.
2: fopen uses a case-insensitive hash table. files are found by name, and those cached names are used to fopen the file. (so foo.mdl -> fOo.MdL).
combined, those make the internal filesystem case-insensitive in linux and significantly faster in windows if you want 1000s of different possible files at load times.
the contents of q3's paks have always been case insensitive.
but yes, the main problem is 'PAK0.PAK' in the gamedir, as well as the gamedir itself.
the gamedir case is still an issue in FTE, admittedly. -game ID1 will 'fix' it, but hey.
If you want it truely insensitive, you need to opendir/readdir/closedir to find camelback filenames. I have yet to do that for gamedirs myself. But then I explicitly copy the files over.