As a society, we really should think of "the poor racist who can't make a living" rather than simply making them a persona non grata and discarding them.
Do you think destroying someone's livelihood and reputation is the best way to change their views? Do you intend to punish, or to rehabilitate? Maybe you don't care about redeeming a racist (or some other deplorable) because you just want to send a message that such views are unacceptable. But all that does is create a radical with nothing left to lose.
Honestly, we need both. In order to have a civil society, we can't have racists running around calling people the n-word and burning crosses on lawns, still less actually murdering people. That stuff is not acceptable, and we need very clearly to say (and enforce) that it's not acceptable.
But we also need to change peoples' hearts, so that they don't want to do that kind of stuff - so that they regard the "other" as fully human, just like they themselves are. As you say, destroying their life isn't the best way to do that. (Neither is nagging, lecturing, and berating people.) Then how do we do it? The only thing I know that can change peoples' hearts that way is the gospel of Jesus Christ. (Note well: I did not say going to church - it's not the same thing.)
Do you think destroying someone's livelihood and reputation is the best way to change their views? Do you intend to punish, or to rehabilitate? Maybe you don't care about redeeming a racist (or some other deplorable) because you just want to send a message that such views are unacceptable. But all that does is create a radical with nothing left to lose.