Drupal Commons has a terrible track record or maintainability and upgrade path. I only recommend using Drupal Commons or Open Atrium when they fit your needs out-of-the-box. If you have very custom needs, definitely go with a custom D7 & OG build.
If you find that Drupal Commons or Open Atrium have features that you would like to replicate, then install them somewhere else and use them as a guide for creating your own features.
The best answer is to say you need to try them all and determine their strengths and weaknesses according to your project, but from personal experience, I have regretted every project I've used Drupal Commons on, and won't do it again.
One project I did, we started with Drupal Commons, and eventually realized that it was not a good fit. So we just copied all the features we wanted into a normal D7's sites/all/modules directory.
Have a look at the (fairly new) alternative for the Organic groups module, which is the Group module. Some more details about it (from its project page):
Organic Groups allows content itself to be groups, which isn't always what people want. It relies on an entity reference field to keep track of the ties between a group (node, term, ...) and its content (node, term, user, ...).
Groups instead creates groups as entities, making them fully fieldable, extensible and exportable. Every group can have users, roles and permissions attached to it. Groups can also act as a parent of any type of entity. Seeing as a group itself is also an entity, creating subgroups is very easy.
Even though it only has a beta release for D7 so far, its Usage statistics seem to indicate it is like a "rising star". And I've heard it mentioned recently in various occasions as a valid alternative for the "heavy" OG module.