It's interesting idea but a lot of mail "contact" is either rare but still important, or one off thing that you read and/or remove/spam.
Funnily enough in old school mail client you could trivally make directory per contact via sieve filter but mainstream mail clients don't really want to give users much power.
But that's what sorted by date means, right? When you get a new mail, it goes at the top of the mailbox, and after new ones arrive, it goes down.
My mailbox sorted by date is a total mess. Having everything grouped by sender email would automatically make it tidy.
That works for single-sender mails, but most of my work mails have almost a different sent of contacts per topic. Grouping mails by subject (topic) makes this more manageable.
In all mail clients I've used, you're 1 or 2 clicks away from seeing your unread messages only, which greatly helps with filtering what's important to read soon.
For me, the email interface works great. I treat it as a self-populating to-do list. The 'one thread per contact' wouldn't work because I organize by project/topic and often have multiple of these with the same contacts.
IM threads have a place of course, but regular email works for me and is actually an important structural element of my work flow.
Actually I also think that email mailbox interfaces are shitty in general, including for emails.
For me, IM apps solved the problem correctly : one thread per contact. The thread goes up when something new happens. You can easily block contacts.
My mailbox sorted by date is a total mess. Having everything grouped by sender email would automatically make it tidy.