In my experience at Amazon, there's a lot of free discussion and invitations for criticism of management ideas, but once a decision has been made, everyone is expected to get behind it for at least the next 6-12 months.
I don't think most teams at Amazon engage in "shaming" behavior, as much as they set a standard. Ie, if we agreed that all new modules are going to have 100% or near 100% test coverage and someone turns in a commit that doesn't have any tests at all, they're going to get some shit from the rest of the team.
There's a difference between an implementation that doesn't work as well as hoped that needs to be refactored, and intentionally adding technical debt and going against best practices to save yourself time. Quirky implementations are treated pretty indulgently at Amazon as long as you fix them once it's clear they're a problem, while laziness and causing harm to other developers who have to maintain the codebase is clamped down on pretty hard.
Most people would be in favor of "shaming" an airplane mechanic who doesn't follow the safety checklist after they've been taught how to, but not so if it was their first day.