Elm has a call stack, yes, and it can be useful to think about. You provide the Elm runtime some functions, most importantly update and view, and it calls them at the appropriate times with the correct arguments. When you call any other function from inside those functions, it goes onto the call stack just as you’d expect.
As for printing out the call stack for debugging purposes… I don’t think that’s currently possible. It sounds like a good idea. Well, it might get confusing if you have a lot of recursive functions.
If you’re trying to understand how a function behaves, maybe try unit testing it with elm-test?