Regarding the two versions of overrideable Behavior Tree functions (AI vs not AI)

Services, Tasks and Decorators all have two versions of the functions available to override, the AI version and the non-AI version. Receive Tick and Receive Tick AI, for example.

I’ve already read mieszko’s response to this question:

the AI versions get called when BT is being run for an AI controller AND given event’s AI version is implemented. We do detect if given version is implemented or not, and if you don’t implement the AI versions the regular ones will be called.

as well as the functions’ tooltips, which say the AI version is called for AI, generic one otherwise, so I get what the concept is.

Basically, as a newbie, it doesn’t matter which one I call, as long as I just pick one. But I’m just wondering, does anyone have a simple example of when what mieszko said might come into play, i.e. why they bothered to make the distinction at all?

What is the otherwise referred to in the tooltip? When is a behavior tree not being run for an AI Controller? Why might I be forced to make use of the fact that they do “detect if given version is implemented or not”?

Maybe I’m still overthinking it, but I can’t answer those questions for myself, so anyone who could shed some light would be appreciated.