To batch draw calls effectively when using multiple textures in Spine with Phaser and WebGL, you would need to ensure that all the attachments are using textures from the same texture atlas. When you replace attachments and their textures at runtime, if they are not from a shared atlas, each texture change results in a separate draw call.
To achieve batching similar to when using a sprite atlas, you would need to repack the customized textures into a single texture atlas. This can be done either at runtime or beforehand. By doing so, you can minimize the number of draw calls, as the WebGL renderer can batch draw calls when all the textures are from the same atlas.
Phaser and WebGL can handle multiple texture units, but for optimal batching, having all textures in a single atlas is the most efficient approach. You might consider using a runtime solution to repack textures if customization is frequent and dynamic.