If it doesn't control both then TCO is impossible, because the stack will grow with each recursive step, as it's just performing a normal call.
Have your mind blown: https://godbolt.org/z/xnn3PPxvW
It's possible for calling conventions where the callee is responsible for stack cleanup before return.
Have your mind blown: https://godbolt.org/z/xnn3PPxvW