This question showed up on my radar again because my comment was voted up, but there are still no good answers so I'll go the extra mile. ;) It's an interesting exercise.
You say that you "have a lot of filters and some of them have several email addresses so I would have to go through all these duplicating every From: test and making it an Any recipient: test - a maintenance headache as well as all the initial pain"
This maintenance headache could be removed through the magic of Applescript. The following script takes messages selected in Apple Mail, goes through all the "sender" fields to find new senders that don't already have one of these "from/any recipient" rules, and if not creates a new rule with your "from/any recipient" rule conditions.
I'm not sure exactly what you're doing with the Mail Rules, but I'll presume you're setting up folders for each Mail "conversation" with each email address. I only search the "from" header to set up these as an email might have many recipients. It's rough and ready, and you'll want to modify it yourself. For example, I don't do any sanity checking of Mailbox names, a name with a forward slash will cause extra mailboxes to be made.
Here it is!
tell application "Mail"
set _sel to get selected messages of first message viewer
repeat with _msg in _sel
set _senderEmail to extract address from sender of _msg
set _ruleName to "Conversations with <" & _senderEmail & ">"
set _mailRules to rules
set foundIt to false
repeat with _rule in _mailRules
if ((extract address from name of _rule) is _senderEmail) then
set foundIt to true
exit repeat
end if
end repeat
if not foundIt then
set _senderName to "Conversations/" & (extract name from sender of _msg)
if not (mailbox _senderName exists) then
make new mailbox at end of mailboxes with properties {name:_senderName}
end if
set _destination to (mailbox _senderName)
set newRule to make new rule at end of rules with properties {name:_ruleName, enabled:true, should move message:true, all conditions must be met:false}
tell newRule
make new rule condition at end of rule conditions with properties {rule type:from header, expression:_senderEmail, qualifier:does contain value}
make new rule condition at end of rule conditions with properties {rule type:any recipient, expression:_senderEmail, qualifier:does contain value}
set move message to _destination
end tell
end if
end repeat
end tell
any
in the popup: "If any of the following conditions are met:" What's wrong with using two conditions?