Since the merge of the new geometry engine, the role of QgsGeometry is undefined. It currently acts as just an implicitly shared container for a QgsAbstractGeometryV2, plus a random bunch of methods for modifying and converting the geometry.
I'd like to see this refined in QGIS 3.0. My thoughts:
What would remain in QgsGeometryContainer would be: