Edit: Although I did appreciate your explanation of IP bans and why they don't work.
i had something to contribute to this thread... you are almost as much part of the problem as anyone you are complaining about... practice what you preach or you'll lose credibility.
btw: a good example of why most bans in general don't work is bans on IRC (rest of post is just about bans on IRC and bans in general at the end):
each IRC user is identified by a string that looks like this: <nickname>!<userID>@<hostname>
where <hostname> has an ISP and a country part.
so, you can ban a user using his nickname: +b <nickname>!*@*
and a nick change will enable you to evade the ban...
or you can ban the userID: +b *!<userID>@*
and an ident change (it's a setting for your IRC client) will circumvent the ban.
banning the <hostname> is basically an IP ban... redial and you'll have a different hostname... ban evaded.
now, the <hostname> has different parts as i mentioned earlier, so how about banning the static ISP part (ISP usually has a "IP" and a "domain" part, with the domain part being static for at least part, if not all users for this ISP... if there are multiple domains for an ISP, you can usually find the IP range for those pretty easily... and THESE IPs are static)? problem: you'll be banning all users from this ISP, which is usually someting that you do not want. just like you do not want to ban all people from a certain country.
/IRC part
this is pretty much why no bans at all work on the internet: all of them all fairly easy to circumvent. those that are not (TS3 has a fairly good system that is optional and pretty much unused) are usually frowned upon by users and will most likely cost a lot of users. users dont want save systems, they want easy to use systems. nobody fucking cares about whatsapp being insecure as fuck, as in everyone being able to send messages as anyone they want to... they use whatsapp because they a) want the service and b) it's easy to use because it has little to no security. if there was another thing like whatsapp, but more secure (and therefore more of a hassle for the users), a lot less people would be using that alternative instead of whatsapp.
TS3 for example has an identity system. Every user has an identity that he can change anytime he wants. Bans are using these identities. so, usually you would just get a new identity and be fine, but the (almost) unused optional feature is the "security level" feature.each identity has a security level associated to it, that you can "manually" elevate. it just takes some time to do the necessary calculations. so, if you set the security level high enough, a newly created might have to calculate the necessary security level for a few minutes or even up to several years (!) of CPU time. a ban of this kind is pretty effective, but it will also prevent regular users from using your server, since, for example, if you want to join a TS3 server and you'd have to elevate your security level for 2 hours before you can, you'd just look for another server...
then, ofc, last but not least, there's whitelisting... as in "everybody is bad unless i say he isn't" AKA only stream with password :-)