Personally, I call "sys._enablelegacywindowsfsencoding()" for only one reason :
Temporary fixing issues with some third party libraries which use C code for files I/O (With filename as "mbcs" encoded bytes internally).
Theses libraries generally call "filename.encode(sys.getfilesystemencoding())" or "os.fsencode(filename)" before sending filenames from Python to C code.
Actually, I didn't see any side effect for using this function. Maybe because I call it at start before anything else.
Using the environment variable is not easy in my case.
I can look if encoding caching in fsencode is efficient (On Windows). And eventually propose a code change for this.