The problem I was having with spam filtering in OS X's Mail.app may have a happy ending after all. I noticed that the degradation of the filters had started when I turned off training-mode. After about five seconds of poking, I found the following note in the help files:
In automatic mode, Mail will move messages to the Junk mailbox so they're out of your way and you can easily screen them. You should periodically review the messages in the Junk mailbox to make sure messages you care about aren't being identified as junk. If a message is wrongly classified, click the Not Junk button. You should also periodically delete junk messages. Correcting misidentified messages, and deleting junk messages, improves Mail's ability to correctly detect junk mail.
I, of course, haven't been deleting the junk messages, I've been moving them into a storage folder. I am willing to assume this is what's been confusing the filter into wondering what is spam, and what isn't. I've reset the filter, gone back into training mode, and I'll be sure to delete the spam in the future.
(A part of me rails against the application making me behave how it expects me to behave, but I find spam far more annoying than that, so I'm willing to put up with it for now.)