This isn't strictly a CiviCRM question in my opinion, but here goes anyway...
members can open closed and public groups
This is built in to BuddyPress - check the box labelled "Enable group creation for all users" in BuddyPress settings.
groups have mailinglist functionality, ideally posts to the group can be created by email and send out by email (such that the users don't have to learn a new platform, if they do not want to)
I'm not sure about creating posts by email, but this plugin will do replies by email:
https://github.com/r-a-y/bp-reply-by-email
It is pretty technical but there's good documentation.
BP Groups CiviCRM Sync will keep BuddyPress group members synced with CiviCRM groups such that there are CiviCRM Mailing Groups per BuddyPress group - see the plugin page for details.
FWIW, I also use a combination of CiviCRM WordPress Profile Sync and BP xProfile WordPress User Sync to keep users' BuddyPress, WordPress and CiviCRM profiles in sync.
members can set up events
The CUNY fork of my BuddyPress Event Organiser plugin (which has been developed way beyond where I left it) enables BuddyPress group events and group calendars. You could also install CiviCRM Event Organiser to sync those events to CiviCRM.
members can see / are informed over events in their proximity
I don't know of anything that does this out-of-the-box, so it sounds to me like a custom plugin which uses (say) Event Organiser (which has a premium proximity add-on) and BuddyPress Group Email Subscription or CiviCRM to notify users.
members can set up profiles, have virtual friends and exchange messages
Again, this is all default BuddyPress functionality.