The function that performs the tail-call won't show up in stack traces. This is intentional (and needed) when it's done to eliminate an infinite number of recursive calls, but if it's just a utility function then it can be confusing.
As an ObjC example, there's an objc_msgSend call between every two methods in a stack trace, but you never see it.