You can, in fact, run .NET as a DLL inside the FSX process space (see my code sample in this forum on how to start the CLR and load your assembly inside the FSX process space). You can run a WPF window inside FSX as a window.
The question becomes whether it is practical, and I would not recommend the approach at this time.
Issue 1 is memory management as the CLR is large and tends to increase the "out of memory" errors in FSX on 32 bit systems with 2Gb or less. Even with a custom memory manager for the CLR, it is exceedingly difficult to not run out of memory because by itself, FSX can easily get to the maximum single process space memory block, let alone you adding the ~512Mb you need for the CLR and the average assembly.
Issue 2 is performance, as frame rates can take a very serious hit. The primary reason is that the rendering pipeline cannot be multi-threaded, you can only render the UI on the same thread FSX uses (the main thread). As rendering is very intensive in FSX, I've seen a 30% to 50% drop in performance running a WPF window, and there isn't a lot of wiggle room.
Issue 3 is the amount of interop needed between managed and unmanaged memory.
I've concluded that while the technology does work, C++ and the old APIs are a necessary trade-off. Until processors get much faster and everyone runs 64 bit operating systems with more memory, this is probably going to stay experimental as far as .NET inside the FS process space. For now, external EXEs are the way to go with the .NET world.
Etienne