Not at all, it can be done in few lines of code:
for middleware in config.get('wsgi', 'middleware'):
Middleware = resolve(middleware)
app.wsgi = Middleware(app.wsgi)
Re-parsing the request at this place seems bad and duplicate code.
They will and should not. The client error are not specific to any Tryton server but only to the specific client.
It is the only possible option.
I do not know. It depends on the infrastructure of each one.
It does not. The server must be agnostic about the client.