The proposal that you linked is all about portable identities, tied to public keys. Is that really necessary for Element to host a server on a user's domain?
I would have thought it would work just like outsourcing your web server or your email service. You generate a DNS name and point it at their IP address. Then they get a certificate and start serving traffic for your domain. Easy peasy.
https://github.com/matrix-org/matrix-doc/blob/neilalexander/...