Yes it does make sense and i also understand that you try to build something like this for the reasons you said.
But i think it is not a good direction, and even if you succed (honestly, i don’t see how) it would be so heavy that things won’t move.
Your idea assumes driving, from a unique layer, a configuration of points (all the pins controlling one character) that normally (1) belong to layers that move with respect to each other, and (2) even pins that belong to the same layer can move with respect to eachother.
Needless to say, you’ll need far more point controls than just head/torso/etc/
Missing: all layer positions and anchorPoints, which are otherwise automatically handled by parenting to nulls.
Then you’ll need a bunch of home-made transform expressions to reproduce the rig on this control layer, not only the pins relative transformations but also the layers relative transformations, and then undo everything with another bunch of layer.fromComp(controlLayer.toComp(point)) expressions to actually drive the art layers transformations and pins positions. It might be that i am exagerating the complexity, but it seems hopeless to me.
Another thing which is easier to explain is that to encode over time a rotation around some point + a translation you need an angle, an anchor (center of rotation) and a position (related to the translation part of the thing), so 2 points and one angle. If you only specify one point (interpreted either as position or anchorPoint) you will miss some info.
This is to explain (does it ?) why the child does not follow the parent when you move the parent.
Xavier.