The problem I see is that the efficacy of shaming or engaging depends entirely on context.
For example, I think shaming racists on a societal level can be quite effective, if not necessary. Because I do believe much of our current 'liberal' society is a thin veneer over essentially the same kinds of people that have done terrible things through racist beliefs even in recent time. We need to fight to keep that veneer from chipping away too much, and perhaps to discover ways to make it less than a thin veneer.
But shaming a young-earth creationist colleague is likely to have little positive effect (to the degree that these things can be quantified, of course). Said colleague has a sufficiently cohesive, comprehensive social world where their ideas are perfectly legitimate. I'd say in this case the effective approach, if one cares enough of course, is respectful engagement. I've seen it work.
But... in a society where young-earth creationists are sufficiently large to significantly affect your reality, well, perhaps more of a fighting approach is appropriate, at the cost of changing the mind of one person at a time.
Obviously I can't prove any of this. I just know that I've seen overt skinheads and very serious Christians (myself having been the latter until well in my twenties) change their mind and while shaming them might've had some effect, in the context of Dutch society at least, engaging them was by far the most effective.
So personally I try to take a two-pronged approach. Shame/societal pressure in the aggregate, and respectful engagement, even with ideas that I find repulsive, on the personal level. I'm still very much in the dark as to what the right mix is, and what my role in all of that is in the first place, but this is my current approach. I do think you make a good point though, to be clear.