End-to-end privacy with multi-device support has been specified in XMPP for years; the problem is that it's vastly complicated and therefore nobody ever implemented it.
In part this is because when XMPP was started, people wanted different things from multi-device - they wanted to be able to leave their desktop logged in, move to their laptop, and not have the conversation pop up there - there being no message-read state in XMPP. So instead, the idea was that you'd pull the archive from the server if you wanted it.
Later, Carbons were introduced, which basically says that if the message wouldn't normally come to "this" client, tell me about it anyway.
As for end-to-end... Well, the original RFCs include a method based on X.509 and CMS (RFC 3923). Never implemented. There's been various different concepts since (OTR-esque and XMLSEC based). None has yet got traction, but you'd be welcome to draw a line in the sand and implement one of them.