As far as I can tell, the only difference between an open group and invite-only group is that the og/subscribe url is hidden and sent through email in the case of an invited user. What I am thinking would fix this is to store invites as GID | EMAIL in the database and simply check if the user's email matches the invited email before subscribing them. This way, if a user clicks og/subscribe/$gid it checks to see if they were actually invited before subscribing them, so that a clever user can't just go around adding themselves to invite-only groups.
Additionally, on a user's profile page there could be a drupal_set_message or similar asking if they would like to accept or decline the invitation to a group, since now we would be keeping track of the invites.
This way unregistered users wouldn't have to go back to their email to click the link again; they would simply login and click the link to subscribe to the group immediately. This would also notify a registered user that they've been invited to a group without having them check their email.
Thoughts? I tried searching for similar issues in the queue but did not find any, so apologies if this is a duplicate.