And they weren't all IT/software/web companies, either. One was the best IT team that I've worked with, period, at a non-IT company no less. Another was a fairly well-known restaurant chain. The third was a small startup-ish design company.
You are absolutely right about the reputation thing. You get that reputation for firing people, especially from the fired. But when you talk with the people that do or did work there for any length of time and see that, when the time comes, leaving will be difficult or was difficult, it all makes sense. The team manager wanted a great team that had great output and nothing less. And there was never any pressure to do the wrong things, illegal things, or base decisions on personal whims. That kinda stuff doesn't happen very easily with a room full of responsible adults, knowing that today may be their last if they screw up.
So I'm not saying there's no drawbacks to the points I listed, but I think they do work out overwhelmingly on the positive side.