It is possible to constrain objects or bones to vertex groups using Child Of, copy rotation, etc. However, when you do this, you tend to get odd behavior, especially with bones. They tend to roll over or otherwise flip strangely.
However, if you parent an empty to 3 vertices, it works reliably. You can then constrain the bone to the empty. But this is a lot more setup.
Can anyone explain why these behave differently? Why is constraining directly to vertex groups not viable, and is there a way to solve it? I remember reading about it somewhere in detail a year or two ago, but cannot find it now.