They are essentially filtering for the very same "C players" they despise and mock.
Like, the output disparity in bigger teams is extreme in programming if you let people loose. And you better not stick your head out in bad workplaces and the advice should be to do as little as possible to avoid being fired.
quality is a thing and forward movement with quality is possible.
What we are avoiding here is a CEO asking, "What caused the outage" and your manager responds "Bill wrote some code that caused a deadlock". It's possible Bill is working on fragile parts of the system, or writes most of the code. Blame at an individual level for an incident is unhelpful and, as OP points out, possibly creates a team with worse delivery incentives.
avoidance of negative quality is not quality.
Note that you bring in the example of a court, and this is how a court works: a suspect is presumed innocent until proven otherwise.
The main point is that a blameless culture fosters honesty and team work. A blameful culture fosters covering up and lying to look good to the manager. But if someone is careless, they will get into trouble in both cases. See the example with the person who deleted the production DB: they would likely never have said "guys, drop everything you are doing, I deleted the prod database and need help" in a blameful environment - even though this is the best reaction to have for the business. But even in a blameless culture, it takes a lot of courage to admit such a mistake and ask for help. Assuming that people are not afraid to do such mistakes just because they will not be immediately fired for it is quite absurd.