commit c2f4404f 'threading: enable filtering of server-side threads', introduces an inconsistent and awkward behaviour to ':filter -u'.
one can run ':filter -u' with the imap backend, read or mark a message read, and still have the same message in the list of filtered messages until the same filter is applied again. this allows for one to also perform another action to the message (e.g. move / copy / archive). this behaviour was the same before, and after the mentioned commit.
with the maildir backend, another behaviour is observed: running the same ':filter -u' will appear to awkwardly  perform live updates to the initial filtered results based on whether the messages still match the initial filter criteria. messages that are (marked) read will no longer appear in the list of filtered messages. one does not have the opportunity to perform an action to the message once it is read like they would have if they were using the imap backend.
"awkward" demonstration: : https://asciinema.org/a/MmWSaQrpIFxpBb2whg9TlFtcU