Yap, it seems to me that exploding a Region down to primitives (Lines and Arcs) is the only solution I can think of. Nevermind, here're the steps for reverting a Region back to MPolygon:
1) Explode Region
2) Merge resulting geometries, converting them to closed polylines
3) If there's only one polyline then there's no holes - skip to step 6)
4) Iterate through resulting set of polylines and find the one with largest area (this is a shell, outer boundary)
5) The rest of polylines are, therefor, holes (inner boundaries)
6) Construe a MPolygon knowing loop types and associated geometries (polylines)
Now, this works only if associated Region geometries form a Polygon (see OGC specs), not a MultiPolygon.
Regards,
Maksim Sestic