A few months back I figured out the physics of how to do that, including inertia, momentum, spring effects, wind, and gravity but not including bone limits, collision detection, or volume correction.
Bone limits would only be annoying to include if you allowed for bounce-back at the limits, with the need to track mid-frame collisions, angle of reflection, etc. Just too annoying. Collision detection - I'm thinking mesh collision here - is a logical follow-through (like running fingers your hair, where the hair passively reacts to other objects rather than the motion of its parent bone); unfortunately, that is a whole other beast which was way out of my scope and skill set. And volume correction would be handy in using a passive-control system for soft-body effects, but would involve fluid dynamics - which are ugly at the best of time - and would involve a rather complicated connection with the mesh/other bones/or both.
However, the rest are all relatively simple to compute. Each element adds a force in a given direction, scaled based on various factors. Then you just add all of the vectors to get the bone's new orientation, scale the bone back to its original length, and watch it sort itself out. You'd need a few user-defined variables (Spring Torque/Moment of Inertia, relative strength of gravity on the bone, relative strength of wind/tide on the bone, etc.) and you would need to keep track of the position and momentum from the previous frame, but it is really a lot simpler to calculate than one might think.
I stopped working on implementing it when I heard that you can't script bone movements in Anim8or. That meant that the only way to implement it all would be to export the model into some program where I could calculate and change the bone angles myself directly. Fine. However, since one would need to use another modelling program to export a rigged skeleton, and they all contain some sort of rudimentary physics engine already, this project just sort of ended its life as an interesting academic experiment with no practical use. Just like my university days
. I still think it would be a great way to get Anim8or up to speed in the physics race, but Steve would need to implement it himself. Given how he's always being hounded for updates I thought I'd give the poor man a break and not put it forward.