Yes, this would appear to be by design and I can't recall why I changed this. I don't mind updating it again.
Line 91 of signup.php
$cmd = "select id,uid,cnf from $utable where list = '$list' and email like '$email'";
to only check Active users for duplicates, it should be:
$cmd = "select id,uid,cnf from $utable where list = '$list' and email like '$email' and cnf = '1'";
I've enabled this now in my new (v1.86) files and will update the v1.85 download.
As well as overwriting unconfirmed users, do you think we should overwrite removed users, or make it an option? I could create a separate error message for removed users, ie. "You were previously removed from this list and may not resubscribe." to clear up confusion when a signup is refused. Bounced users should always be allowed to re-subscribe.
Regards