Why is tick called every frame? isn't this inefficient?

I’ve seen this before when games call something every frame, and the frame isn’t decoupled from the update, it really makes for some bad coding standards, no? Is the method “Tick( delta )” really called every update? If so, is there a way to pussyfoot around this so that you have decoupled updates? This would make Threading and continuations much easier…

well…
The only reason to render a new frame is if something has changed.
The tick is one mechanism to affect this change.

For example, playerinput is processed and causes the character to move.

You can easily have things tick at different rates - see Tick Interval.

In addition, you can control where in the tick it fires with tick group.
Lastly, Physics is ticked independently, multiple times per frame - decoupled from the frame, - see physics sub-tick docs.

and you can use timers if less frequent update needed…