With my uber-limited understanding of coding...
When you code something like this, you sort of cycle through all instances one at a time. Something along the lines of...
RoF deals 3 dmg to creature in slot 1
if health =/<3, dies
if health =/>4, lives, subtracting 3 from health
-goes to next creature slot-
Vulture checks to see if any creature has died this turn.
Creature in slot 1 died, so vulture gains +1/+1
RoF deals 3 dmg to creature in slot 1
if health =/<3, dies
if health =/>4, lives, subtracting 3 from health
-...
-...
rinse/repeat.
I believe this same situation occurs when you have a large amount of plagued creatures set to die on your turn with your opponent having a Bone Wall in place. The algorythm just cycles through each creature slot in turn, doing the subsequent math for the wall at each instance (-1 wall, +2 wall).
As to whether or not it's intentional, I believe it is. Arguably, its possible to have the code do each check of the creature slots but delay in applying the effect until all slots have been accounted for then apply the damage simultainously. However, I am not sure because as I stated I have a limited understanding in coding, it may be that a few more extra steps are involved to do this and in a lot of cases those extra steps can really slow down preformance. If it's a preformance issue, I've noted a few times that when large effects occur in game, is can slow down the game considerably during the effect. Any extra work the code must perform would dramatically increase this lag. It may even be possible that such an increase in lag could freeze the program. If so, then the coding would be intentional to keep it simple and therefore keep the game's speed more fluid.
Like I said, I am not a programmer, so don't take my comments under a scope, but this is the best reasoning I can come up with.