It is generally just not "Best Practice", or even good practice anymore. That is why Microsoft changed the arrangement back in Vista. I'm not the right person to explain all the issues, but if the User ID that is used by mc2xml to write the file has the permissions to do so, then any malicious software deliberately or accidently run using that User ID can also write to that directory.
Also the process may work fine as long as there is an existing xmltv.xml file in the directory, but may fail if you ever delete that file and a new one needs to be created. Do a little test. Open the directory in Windows Explorer, right click in the open window and highlight "New" with your mouse. Does the option to create new file show, or just the option to create a new directory? If it doesn't show the option to create a new file, then the User ID you are using isn't allowed to create a file in that directory.
However, if you were to put a copy of xmltv.xml in there, and then try to copy a new version over the top of it, you will just get the file exists warning, and have the option to overwrite the file. A background process may just automatically select the option to overwrite. That depends a lot on the process. Since you don't see that message, I have to assume that the mc2xml process can overwrite its own file.
So, if an xmltv.xml file did not already exist in the "C:\ProgramFiles\MC2XML" directory before mc2xml ran again, then mc2xml may fail. Diagnosis of such an issue would be fraught with frustration, and there may be some blame and angst thrown around. All that can be avoided by using a directory where mc2xml has full read/write permissions.
Also, if you wish to open that file and review the XMLTV data, it just isn't good practice to be opening a data file in a subdirectory of the ProgramFiles directory.
It is so easy to do.
Create a directory where you want to store the file. Perhaps "C:\Users\[user]\AppData\Roaming\mc2xml", or even just use the existing "C:\Users\[user]\AppData\Roaming\J River\Media Center 21\Temp\", although that will change when you upgrade to MC22, and so mc2xml will require a little more attention for the upgrade.
Add the -o parameter to the existing mc2xml parameters you have already placed in MC. i.e. "-o C:\Users\[user]\AppData\Roaming\mc2xml\xmltv.xml".
Done. (I think. I'm not testing it.)
Cheers.