If you are not afraid of getting your hands dirty, there is another way to do it using ArcObjects and the WPF API. Basically you would create a custom dynamic layer that reads and renders an MXD using ArcObjects. Unfortunately I don't have any code I can show or pointers to give, but I've seen people do this, so it is possible.
The layer itself is fairly easy to implement. It's a matter of inheriting from DynamicLayer, overriding GetSource and return the image based on the parsed in extent and size, and during initialize set the spatial reference and full extent of the layer.