@lumi
Right, but the only reason I can think of to keep the private identity key on the server and not client side is for account recovery.
There's a proposal for matrix to have portable accounts. Of course, it requires major backwards incompatible changes to the protocol
github.com/Gnuxie/matrix-doc/blob/gnuxie/portable-accounts-in-rooms/proposals/4348-portable-accounts-in-rooms.md