I don't believe that the presence of the XS interface would preclude the use of the dll for injection into other processes. Just provide your normal dll interface for your other code in addition to the XS stuff. So one copy will be loaded with perl and use the XS interface, and when you inject the DLL into other processes, the other processes will use the other interface.
Note: I'm assuming Windows here (where the above will work). I've not tried it in *NIX, though I don't know of any reason that it wouldn't work there.
Alternatively, can't you just add your rule to build the other DLL and add it as a dependency to the XS DLL?