One of the things that stood out to me right after I tried using notmuch, is that whenever I performed a search (which included some unread messages), opened an unread search result, and went back to the search buffer, it would still show that thread as unread. To update the display, I'd need to invoke notmuch-refresh-this-buffer, which is not only pretty slow, but also resets point, i.e. all-in-all rather annoying. Fortunately, this was very easy to fix, as the machinery for updating individual search results was already in place.