Parameters for target selectors seem to be only capable of understanding "AND" statements. For instance, @e[type=Cow,r=10] targets all entities that are both a cow AND within 10 blocks. However, OR statements are a little more tricky. Say I wanted to target anything that was either cow OR a pig, but nothing else. I'd either have to to a crap ton of NOT statements (@e[type=!Player,type=!Creeper,...] literally anything that isn't a pig or a cow), or make two commands- one for cows and one for pigs (which seems to be what most people do).
However, I think OR statements should be supported. It would increase efficiency in command creations by quite a bit, and it wouldn't have to interfere with already-existing creations. Here's how I think it should be done:
It's just a target selector with two parameter segments, each acting independently, and selected entities have to fulfill one or more of these parameters to be selected
Other examples could be like this: @e[type=Cow,r=5][type=Pig,r=10] would select cows within 5 blocks, or pigs within 10 blocks... you get the idea. Also, the amount of segments shouldn't be limited to two, just to clarify.
In the above statement, the meaning is too ambiguous (is it supposed to be a cow or a pig/sheep, or a cow/pig and a sheep?) I don't know the language well, so this issue might already be handled in the current iteration.