Hot take: in-house development has been influenced too much by the GitHub open source PR driven development process. A process driven by zero trust doesn’t fit well in a team with trust.
GitHub adds too much friction. Gerrit workflow is really a lot nicer. Also, need automation set up for a bigger project.
It works well to require a set number of reviews (usually 1, sometimes 2) and have powerful CI infrastructure quickly getting it tested + merged.
I think it depends on the kind of project.
If something goes into production quickly based on what gets merged, that's different than having a release cycle where there's time to stabilize things before an actual release.
At least once you have more than a couple people it's really inconvenient / horrible for the main development branch to be broken. I can see it not working well if there isn't a culture of quickly reviewing things for people and a very well made bot that quickly tests + merges.
A high trust model could mean people can sign off on their own change and the bot tests + merges it the same as always though. Take a look at how Rust merges changes if you haven't.
I'd happily push a change to refs/for/master instead of to master and have CI quickly build + test and merge it for me even for projects where I'm the only person working on it. I don't do it because the tooling on GitHub is horrible.
So, basically, what I'm used to for collaborative projects with good bots + CI is that committers can approve their own change, but regardless, the bot is going to test + merge it. Especially important if you target a bunch of platforms people can't just test locally easily.
Even if just target 1 platform and the development testing environment is nearly exactly the same as production, which generally isn't the case, it's really useful to have the changes run through a build + test and merged automatically so you actually can't break the main branch.