Hi John,
Great question! Unfortunately, it is — generally spoken — not possible to do this (at least, not exactly). Note that this is not a shortcoming of OpenSubdiv, but a theoretical issue. To see why it does not work, consider the following example: three control points A, B, C forming a triangle. When subdividing it, we obtain six new control points a, b, c and ab, bc, ca forming a hexagon. For example, a is the combination ⅛A + ¾B + ⅛C, and ab is the combination ½A + ½B. The above can be summarised by the following illustration and system of equations (using matrix/vector notation):
Now, your question is whether we can obtain the control points A, B and C when we're given the control points a, b, c and ab, bc, ca (and their mutual connections).
If we start with A, B, C given, we can compute the six subdivided points. If we then, for example, move ab a little bit towards B, our task is to find the new position(s) of A and/or B such that our original subdivision rule ab = ½A + ½B is satisfied once again. Note that this involves moving A and/or B. However, when we move A and/or B, the subdivision rules for bc and/or ca will no longer be satisfied (and those for a, b, c might also be violated)! Alas...
Mathematically speaking, the system of equations is overdetermined, which means that apart from special settings, it is not possible to do this (exactly). Only if a, b, c and ab, bc, ca were originally obtained through subdivision, we could compute A, B, C from them.
Just to be complete, in some cases it might be possible to get a reasonable approximation, meaning that you can obtain a triangle A, B, C that when subdivided, is similar to — but not exactly the same as — the hexagon a, b, c, ab, bc, ca. Keyword here is 'least squares'.
Hope this helped! Best,
Pieter