Hi UncleAcid,
As far as I know, this is the intended behavior at runtime. I believe this is intended to allow one to overlay multiple animations on top of one another. I think the fix lies in the animations created in Spine. I'm pretty sure you need to ensure that on the first frame of any animation that any attachments/bones have their texture/position/rotation/scale set to what you need for that animation (or to some default value that you expect). If they are not implicitly reset by you then they will inherit whatever values any preceding animation last left them at, as you are encountering. This may seem like a nuisance, but the system actually allows for some very powerful animation layering if you explore it later on (animate legs, arms, head, you name it, using different, non-interfering animations all at the same time). So I guess I would recommend instructing your animators/Spine skeleton creators to insert keyframes at the beginning of animations to override anything that may come before and set the skeleton to default values for that animation.
Hopefully someone else can verify my answer.
Regards,
Rob
P.s. I think there is a skeleton.setToSetupPose() function, or something similar which you could call before you set animation. That would probably provide the functionality you want by resetting to the default setup pose. This is what is happening when you play the different animations in Spine itself.
P.p.s. Actually just found it in the documentation here.