Junk mail filtering ignoring "Sender is in my Contacts"
This turned out to be spam filtering by the ISP (Comcast), not Mail.app. Since they use IMAP, the ISP's Junk folder is sync'ed with the Mac's Junk folder, so when the ISP filters it it looks just like the client filtering it.

I went to the ISP's mail settings and disabled their spam filter, and the problem went away.