Join or create group on registration
I think your general premise is sound. I'd be tempted to use hook_user_insert() instead, which is called after the user has been created, rather than before, since:


Your module can't actually fail to create a group or insert a new one.
hook_user_presave is really for modules that want to serialize (simple) data to be stored in the users table itself, which isn't what you're doing.


The necessary hooks in OG7 are all there for checking and creating groups and inserting users.