Plus, the server already has a shared secret with the client (presumably), the API key. Backwards compatibility might be an issue, if you aren't storing the client version on the server, but that seems like a simple fix.
Can you explain a bit more what I'm missing here? I'm a bit confused.