Our imap backend triggers the new message hook via the imap server exposing \recent. If the server does not have this capability (looking at you gmail), it's pretty hard to know what is a new mail.
Some quotes from IRC:
I don't think we have a way to differentiate initial load from updates message infos arrive asynchronously you'd need a way to flag that a given folder has finished initial load to then trigger the hook on new messages but then, if you copy an old message from another folder or if you scroll down, you'll get notification every time
it is really complicated
maybe the less terrible solution would be to check the date but it is a hack anyway