(1) Different Spine Skeletons/Spine characters can share one atlas and texture.
You can export the jsons without atlases.
Then put all the images into a folder, and the use Spine
>Texture Packer...
to generate the shared atlas.
That will allow you to pack a whole folder of images and output one atlas and texture to be shared between different skeletons.
Because they share one atlas, your image filenames will need to be unique.
Either that or you need to put them in individual subfolders, and let each skeleton use their own subfolder.
For very detailed info, check this page: Texture Packing - Spine User Guide
A good number of other users people have done this so there were old topics on this subject.
Don't hesitate to ask questions if you run into any problems doing this though.
(2) Spine-Unity currently isn't able to use Unity's Sprite Packer as its sole source of textures. No workflow and code is in place right now. Last time we attempted this, there were a few quirks on the Unity Sprite Packer API that made it not feasible.
(3) You should use the profiler to find the real sources of slowdown. I mean if it's really 30 draw calls, that's barely enough to slow down an iPhone 4. If this isn't a real bottleneck, I recommend saving this optimization step until shortly before you have to ship the game. 🙂