I'd say it does really comes down to who as better access to the data that
drives the decision. but other considerations such as how easy it will be to
view and modify this configuration.
In BizTalk you may find the rules engine be very useful for this, and will
automatically provide you caching abilities, versioning etc.
Another option is to have a consuming pipeline component in the receive
pipeline to consume any messages that should not be processed (and driven by
db access or something), this is all custom code, but will reduce the load
on the BizTalk server (other then the receiving host) as messages that
should not be processed will not get persisted into the message box and no
instance of an orchestration is required)
you may be able to combine the two and call the rules engine from a the