That is a feature added to the XMPP web client Movim recently. https://mov.im/community/pubsub.movim.eu/Movim
Theres's nothing stopping you from having a JID username@example.com and an email username@example.com. XMPP and e-mail are different protocols that operate on different ports, so their respective clients will figure out how to send a message to the correct server.
Now, if you're asking how you can set something like this up, then you independently have to set up an XMPP server and an email server on the same domain. Or use some kind of email to XMPP bridge.
Matridge will be good to set up while ejabberd works out the kinks in mod_matrix_gw.
Yeah I don't think there's any one client that necessarily hits all the boxes. As long as you stick to Movim, Dino, Gajim, and Conversations you should pretty much be set for most things.
Maybe the only solution is to roll your own client 😉
If you're seriously wondering then I'd highly recommend reading Daniel Guerrin's Fascism and Big Business. And Antonio Gramsci's Prison Notebook, particularly the section The Problem of Political Leadership in the Formation and Development of the Nation and the Modern State in Italy.