Dynamically combine ActiveRecord Relation results
Turns out the last code snippet in my question was close to what I ended up needing:

def self.special_animals_only
  SPECIAL_ANIMAL_TYPES.collect { |types| where(types) }.reduce(:or)
end