API param passthrough will probably help with many of the cases. Things like sampling params and constrained decoding and returning logits tend to be very finicky with the translated params. But the return value translation also makes debugging these harder.
While I'm at it, another annoyance is that OpenRouter doesn't seem to have a very good API playground. The chat does work, but the params exposed there are quite limited and it's not clear how the GUI fields map to API params. I now have resorted to exporting the chat and figure out the params from the export JSON. Just having an option to get a curl command for the chat call would help a lot, and shouldn't be hard to implement.
Edit: I think the ideal implementation for the direct API access would be that I could generate API keys for the provider at OpenRouter that I would give in the provider API calls, but that would get billed through OpenRouter. Second best would probably be a raw HTTP proxy/tunnel that injects OpenRouter's own keys (or however it is that you call the providers). I don't really know though how you call the providers and what kind of new provider integrations these would require.