I helped draft the 2018 CoC (but disliked how it was adopted). I helped get the replacement adopted (LLVM or golang, I didn't care: both were so much better). I'd like to share my personal views.
The takeaway is simple. The 2018 CoC was adopted w/o input from the community. It was poorly drafted and some of the worst examples were held up to ridicule. It also appeared when people were itching for a culture war fight, so a lot of outsiders dog-piled on it. Worse than that, though, was that it was also a poor document to help field complaints of bad behavior and help people interact in a more respectful way. It also had bad reporting mechanisms that encouraged abuse. It was a poor fit for the community that wants aspiration, not prescription. While it was a mistake to adopted what was effectively the rough draft of the drafting committee w/o the review we thought it would get (in general engineers suck at drafting high quality CoCs), it was an even bigger mistake to try to adopt it by fiat w/o a community discussion. So whoever said it can't be viewed as anything but a failure: you are right on that point...
The 2020 LLVM adoption is a much better fit. The reporting issues were also fixed. It provides better guidance on behavior that has been found to promote collaboration. It gives much better guidance for dealing with friction between community members. There have been fewer formal complaints, though it is still early. And the best thing: so far there haven't been the wide-ranging flame wars over its content we had with the last one. The project has been more focused on technical arguments and working to get FreeBSD 13.0 out the door.
The real takeaway here is that a bad CoC can drain the energy out of people. No doubt about that. A good CoC disappears into the woodwork. It's better to admit failure with a bad one and move on than to stubbornly enforce it at all costs. Also, engineers have a poor track record of drafting high quality CoCs: let others that have been successful do it and just use theirs was another take-a-way. Community engagement is also key, because that leads to community buy-in (a lesson learned from the 2018 experience). The CoC should reflect the community's values and aspirations. The more it does, the more buy-in you'll get which is key to it's success. I'm sure that in some years, the community's standards and values will have evolved enough to warrant revisiting things like this CoC, but for now it's at least a decent fit.
Lately, it seems to be working... The project has put its energy into adopting git (I know, a bit late), moving to asciidoc for its handbooks and docs, moving to OpenZFS as our ZFS upstream and getting the FreeBSD 13.0 release ready (due next month). It kinda surprised me to see this come up at all since things have been so quiet on the CoC front lately...
Anyway, I'm sure this won't please everybody. I'm sure some will disagree with me. But I think my perspective on the project's experience might be of interest.
Warner