Another thing worth taking into consideration that you may need a mechanism to exchange/patch certain simulator-side data with your external FDM and vice versa - unless the FDM and the scenery engine are using the same underlying terrain database - e.g. imagine differences in altitude above ground level (AGL); you may get away with a applying some kind of dynamical offset for lat/lon and altitude differences between the FDM and the IG (FlightGear), but according to past discussions on the matter (e.g. those wanting to hook up the Aerowinx 747 precision simulator/PSX), this is one of the less-obvious challenges - and it may make sense to establish some kind of middleware to negotiate between the underlying FDM/scenery data.
To some extent, the osgEarth integration was facing similar issues - e.g. it had to patch up internal APIs for getting the current lat/lon/altitude, so that they're using the osgEarth instead of the default scenery engine.
Ideally, FlightGear would provide some kind of dedicated IPC mechanism that could be used for these purposes - with different FDMs and/or flight simulators in mind, where FG would solely be responsible for acting as an IG.