Currently, if there's an objectionable edit, sysops will often change the revision's visibility so that it's no longer viewable by the public. We could instead denote the unacceptable nature of the edit, while still maintaining transparency, through a "user was banned for this edit" tag which would show up in action=history, Special:Contributions, etc.
One might argue, "Some users were banned because of a pattern of edits, rather than one specific edit"; yet we see on 4chan that mods are often able to indicate which post a user was banned for. Furthermore, multiple edits (rather than just one) could be tagged this way, if needed.
In the future, at WP:ANI and in ArbCom proceedings, banning will be a two-step process. The first step will be to actually debate and !vote on the sanction, and the second step will be to debate and !vote on which edit(s) should be deemed the proximate reasons for the ban. The closing admin can then tag the edits accordingly.
People argue that we should just WP:DENY recognition by hiding objectionable revisions, but the reality is that the penological theory of deterrence requires making an example out of people by making it known what behavior led to what punishments.