Skin getAttachment is called to find an attachment in a skin. During animation, AttachmentTimeline calls it, so if you have attachment change keys it will be called every frame (once for every AttachmentTimeline). Skin needs a map which has a composite key that is slot index and attachment name and a value that is an attachment. AS3 has two options for this: 1) Object which is an associative array where all keys are strings, and 2) Dictionary which uses identity comparison for keys. Dictionary can't be used because the key is the result of slot index and attachment name, the key is not an object that is passed around. AFAIK, AS3 has no options for a hash map where object keys can be used with regular comparison and a custom hashcode. Using a string is the standard way of doing a composite key in AS3 and should not be a bottleneck since it is called few times each frame. It's pretty standard, really.
Loading Image
Removing all your Spine animations of course removes all processing and drawing. It would be better to remove smaller portions to see what affects the framerate. Eg, you could comment out AttachmentTimeline apply so everything else is still done, but Skin getAttachment isn't called every frame.
I changed SkeletonSprite render to replace the rendererObject with the SkeletonImage, which means fewer casts are needed on subsequent renders. Otherwise, what render is doing is pretty minimal.
I did some of the optimizations Daniel mentioned that weren't already done. Committed.