Why is Animation Blueprint Update is called before Begin Play?

In the meantime you could actually get the same basic functionality by initializing your variables on AnimUpdate using a DoOnce or a Gate. It’s not ideal since it does add a single branch on each AnimUpdate, but in practice you won’t notice it.