AnimationState does indeed special case track 0 here:
EsotericSoftware/spine-runtimesblob/4.2/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java#L215-L216
It's complex for various reasons.
Setting mixBlend
yourself is OK. If AnimationState did the same, I'm not sure it would behave correctly if later an animation was set on track 0. If you know how your application behaves and that setting mixBlend
as you are works, that can make sense.
What is the advantage to having track 0 without an animation much of the time? It may be better to rearrange your app so track 0 is used for "base" animations that are never combined with lower track animations (because there are no lower tracks).