I wouldn't call it unreliable then because whatever LC_CTYPE is set to is what the user expects their file names to be interpreted as.
If the contents of LC_CTYPE is wrong for a particular file name, at least you get consistency between your python program and everything else on the system.
If the contents of LC_CTYPE is wrong for a particular file name, at least you get consistency between your python program and everything else on the system.