I’ll try to adapt this to other situations soon. For some special effects, having extra draw calls is fine. They can be disabled / swapped to less expensive ones at runtime now anyway. I’ll do a test with dynamically setting material of a sprite to reduce draw calls when not using the special batch breaking special effects.
If you don’t use scaling / rotation then you may write a specialized version: you have a lighter shader and less data to pass. But I am sure this was already clear to you.