Look Gary- I compose an email, I know I want to write to John Doe, as this guy is in my contact list. I conpose 5 emails per day to him. I start typing John: Why on earth would his contact suggestion be somewhere in the middle of the list? Why isn’t he the first suggestion? Why a random John Colt, I have sent an email 2 years a go, would be suggested over John doe I chat with every day?
To reaolve this, you need to separate suggested recepients based on whether they are in the contacts or taken from the sent folder.
Imagine you have a special contact with an address you forward emails to maybe store them somewhere, like evernote, todoist, gitlab, whatever. Composing such an email nornaly takes few key strokes. Now you additionally need to look for your contact in the middle of the random list.
Second thing, always suggest based on score. More frequent recepients should be suggested first.
3rd thing, allow for pining suggestions on the top of the list.
4th thing, allow the user to completelly turn this feature off. This is the easiest and the fastest fix one can give untill a feature is fixed.
5th thing, merge suggestions with the same address into one suggestion, but with different names separated with comas.
6th thing, simply do not suggest an address from the sent folder if that address already exists in your contacts list (even if they have different names, it just doesnt make sense).
It seems to me that this is all basic UX stuff, and I am not even a front end developer, just a bare email client user.