After reading a bit on the support forum for the P3D migration tool, I think I understood what legacy mode does and yes, it shouldn't be used with our products.
One thing it does, it makes a copy of the prepar3d.exe to fsx.exe, and patches its version information, as it were FSX. So, an old program that checks for the existing FSX.EXE process, will be able to find it, complete with the version its expects to find.
However, this will entirely screw up our products because, we decide from the version information of whatever executable launched the Addon Manager, which version of FSX or P3D is running under and, based on that information, we set several offset in memory that we need to access.
This means, the information must be correct: if I'm getting an FSX version number from the renamed Prepar3d.EXE that launched the Addon Manager, I assuming I'm running under FSX (but I'm not), so I'll look into memory addresses that are valid for FSX, but will not work in P3D in the best case, and will make the program crash in the worse case.
The reason for needing direct in-memory access, is because there are things we can't get in any other way from the official Simconnect API like, for example, the actual coordinates of the eyepoint position, which are needed to enable Surround sound in GSX, but there are several others.