I hate this so much. I hate it even more, because it's mostly true that it works. YMMV, and I'm talking of non-technical organisations or organisation where tech is a cost-centre rather than value-add.
Those who don't fully understand it (it being whatever technical disagreement or choice made), which is usually the majority, will side with you. The remainder are usually people who can see that the organisation is structured this way and either give up out of apathy or leave for greener pastures.
If someone literally yells at me, I'm out. Notice in that day, usually within the hour. If the organisation is willing to allow that behaviour, it's usually toxic. If I'm on contract (which I always am now), my opinion within that organisation will no longer be respected. Notice of non-renewal immediately.
Surely some clients do yell, and presumably if they think it is acceptable to yell, they would be surprised at an abrupt end to a contract!
On being yelled at, it's only happened once - and I'm pretty sure the person doing the yelling was having a bit of a breakdown. Getting yelled at is a very strange thing in a work environment.
I can't imagine working in a place that yells at me - that would be the final nail in the coffin where I would that that person everything I think of them and their inaptitude to "manage". I guess that's why I no longer punch the clock.