What is a worthwhile replacement to DNS? We don't have one. That's part of the problem: differences of opinion.
Try HTTP/HTTPS: we have separate ports, browser preferences, and lots of unified messaging deprecating HTTP.
Suppose we reuse the same format (name@dom). What would a migration plan look like?
Early stages:
- DNS record indicating support.
- Separate ports.
- Reduced spam (because nobody is using it).
- No warning messages.
Mid stage:
- Lots of dual-stack systems.
- Something like HSTS and preloading.
- Warning indicating insecure delivery (the client can detect this).
- Buy-in from most large corps (Gmail...)
Late stages:
- Old, insecure port goes away almost entirely.
- Revisions to spec, improvements.
We're still at the tail end of this for HTTPS, and we're building on top of a well-known, supported encryption protocol (TLS, which gets reused elsewhere).
The point is, if Gmail doesn't buy in, you've not made meaningful progress, because they have billions of users alone. And unless they move, most large corps/... won't also move.
That's, in my opinion, why Signal and stuff (while nice, secure, ....), won't replace email.
So how do we get there?
First we need a security protocol with the constraints outlined in the post.
- Forward secrecy,
- Handles key rotations,
- Notifies of device changes potentially.
- ...
That's going to take time to design, develop, and standardize. Whether we tie the messaging protocol and format (SMTP/...) tightly to the security protocol (TLS) remains to be seen. It takes time for formal verification too.
Then we need Gmail support. If it is a closed, non-standard protocol (like Signal), it won't be adopted. The RFC process is the only process I know that can influence those types of changes.
And yeah, now? It won't be secure. But we'll have a path from getting to "mostly plaintext" to "mostly secure". And we'll have to live with the fact that it takes time.
If you're not reusing the same address scheme, then yeah. You would have to educate a lot of people about the difference. But if you push that onto the developers, I think that's better. And you can make it mostly transparent to the end user, except at critical times.