As stated, people should use their common sense when creating Minecraft usernames. Anyone who calls themselves, for example, ****head1337 would be fully aware that a lot of people will not allow it on their servers. They realise that when they pay $20 for a Minecraft account.
However, we do realise that you can't change your IGN. For that reason, we usually only ban the ones that are strongly inappropriate. As is stated on the rules, this is the only type of ban which you are allowed to void with an alternate account, provided it is named in an appropriate manner.
Players with nicknames will create jealousy from other players. They will most likely have short, sought-after names. Once players find out that these banned people are actually getting special treatment, ie. a new name (which many players on our servers have asked for) then I can see a lot of problems arising, and in extreme cases, people creating profane Minecraft accounts just to get a nickname.
Also there's another issue. A nickname does not display the full name of the user, which is what is to be used if we were to ban them. So, if a mod is in game, and sees a person hacking, they will assume that is the actual IGN (or if they can see that it is a nickname, they still won't know the actual name of the player) and so will not be able to punish the player if they do break rules. Even if it was made so moderators can see their true IGN, regular players would still not be able to report them for things like hacking in videos and screenshots.
So, basically: too much trouble for the devs to create a function that helps people who knew full well that the name was not allowed, and it has too many cons.
Also, I would add, as one of the people who deals with ban disputes, disputes for inappropriate usernames are highly uncommon. They are not "banned and banned until they are eventually perma banned", all of them are instantly perm banned.