As you know, the SOE extension machine is not terribly flexible.
One alternative you have is to provide a proxy. You can send your request to the proxy in any form that it understands and have it forward the request, rewriting it as needed, to your SOE.
A great example of this is what we do in 9.3.1. In 9.3.1 you cannot extend the SOE using REST but we do. How do we do it? What we do is to send the REST request to the proxy which performs a SOAP call and then returns the results. This gives us the same REST interface in 9.3.1 and 10.0.