For your final example, it's good that it doesn't ban anyone. From human analysis, I can guess that these 4 are the same person, since I can see a pattern in how someone created the 4 nicks. However, as far as a script is concerned, these are 4 different IP's, so how's it supposed to know to ban them.
As for +R preventing unregistered users entering the channel, YES that's the whole purpose. The vast majority of users affected by +R are either people you don't want in your channel, or they're good users who don't have their client configured to have a long enough interval between identifying their password to nickserv and attempting to auto-join a channel. So when the channel becomes +R, their join attempt fails because nickserv sees the password after they try to join it.
The solution is for the 2nd group to fix their problem, rather than clutter the channel with attempts to ban the 1st group. In one of the recent mIRC versions, it added a little gap before autojoins, or you can see /help /autojoin -d<NUMBER>
There's a limit to how many bans can fit in the channel's ban list, so eventually you need to clean out older items before you can add new bans. Also, by random chance it's common for a 'good person' to happen to join shortly after another 'good person', but what you're wanting to do is create a ban in that situation. You're also wanting to create a ban when the server recovers from a netsplit and everyone on those servers finally is re-connected to the channel.
If you do have a +R mode, I think there's another channel mode which you can use to redirect the user to another channel rather than just having the join failure