The stack is indeed the main reason why the behavior of a conventional programming language is difficult to predict at runtime. The observation is that there are much better ways to organize the runtime information than a bunch of stacks, that allows better and more precise predictive optimization.