While I do agree that taking ones frustrations out on another person who is just doing their job is not the best way to handle things, customer service reps, if properly trained should be able to handle -to some degree- disgruntled customers.
Excusing them from representing their company and blaming "the higher ups" does no one any good, by the same token, if you are not making progress with a particular rep, you probably should request to speak with their supervisor who might be more able to help with you particular situation.
In my view screaming, becoming hostile or agitated are usually detrimental to your cause.