However, I was surprised to see that the target must be defined during the export process (meaning one must export twice to be compatible with two different targets?), and no matter the target selected, a DirectX shader must be used within each 3DSMax material.
I'm sorry, but don't understand what you're meaning with "target". The result of the export are XML files describing material properties and how the scene graph looks like as well as meshes within a binary format and of course the used textures. This data is quite generic and can, in fact, also be used within none PixelLight applications. Within the export dialog there are some special settings like "scene renderer" or ambient color, but those are only hints for the application using this scene.
The DirectX shaders are only optional, so one can get an idea within the 3ds Max viewport how the result will look like. When exporting 3ds Max materials with fx-Shaders - only known settings are exported to the mentioned PixelLight XML material descriptions, so, no shader code is exported. A PixelLight material tells the used scene renderer how the result should look like, but how this result is created, or what kind of provided material information is actually used, is up to the scene renderer which interprets the material descriptions.
The 3ds Max exporter within the SDK comes with a documentation describing what kind of information can be exported and so on.
Anyway, the whole engine/pipeline looks rather solid (no crash, no export failure ...)
Thank's for the compliment. This pipeline was already successfully used in multiple commercial projects - even within a minimalistic Java3D port of PixelLight. (this exporter was used to export the complete scenes and animations, which then, were used within an Java3D application)