The tense shouldn't matter. You could use either version of either sentence.
The reason the original versions might be more natural is only because of the particular actions being described.
If you vomit once, your mouth is likely to taste like bile. More vomiting may increase the bilious taste, but it's not necessary to vomit multiple times, or over an extended period of time, in order to taste the bile. So a single "I have vomited" would suffice.
On the other hand, yelling one time - as in, one single shout - will likely not make your throat sore. We say "have been yelling" to describe the condition of shouting multiple times over some period of time.
Now, it's true that "I yelled at the concert" may very well mean I yelled multiple times throughout the course of the concert, but it could also mean I yelled one time during the concert. Because it's meaning is ambiguous, you might want to choose the present perfect progressive, to ensure that the listener understands that there were multiple shouts, but it's not entirely necessary.