A better explanation in my opinion is to draw a diagram of a stack and showing that returning from a function just decreases a pointer. C++ programs don't scrub the top of the stack once you finish a function because it is a waste of time.
If another function was called before the 2nd call to foo(), then the variable on the stack would be overwritten.
If you are used to safe languages, the concept of undefined behavior might be confusing. In those languages, an operation is either allowed or not allowed, and if it is allowed it has well-defined behavior. In C a number of operations does not have well-defined results, but is still technically possible to perform, or might be possible depending on circumstances. But you shouldn't use them. The analogy is supposed to explain that.
Thats the exact type of thinking that keeps so many people away from programming and computer science.
A nice accessible answer that helps a person make a logical leap in the right direction is so much more important to a novice than pedantry.
Its not a perfect answer but to a person who has no clue whats going its a lot more helpful to get some idea
The real explanation would also be less complete than the analogy as going into the "construction of a football stadium", etc. would have to consider optimizing compilers, virtual memory, and the other things that could get really mucked up. The analogy is accessible even to people who don't program, rather than to just those who have seen %ebp and %esp.
Of course, by my own logic, this comment should also be downvoted purely because it is a meta comment, is off-topic and detracts from the actual discussion. Hell, if I could, I'd do it myself ;-)
To this end, I feel the cap of -10 on downvotes was a great idea. It lets someone post an unpopular (but hopefully logically sound) argument with the knowledge that they will lose a capped amount of karma.
I think "I know I'll get downvoted ..." usually just indicates (not a long tragic history of getting downvoted for insightful comments, but) roughly what it says: the author expects to get downvotes -- and probably hopes to get fewer by saying s/he expects them. HN is better off without those preambles because (1) they're a waste of space -- learning that the author of something expected downvotes tells you nothing useful -- and (2) they distort the scoring system, which (for all its flaws) does help to order comments well and identify ones that aren't going to be worth reading.
If its #1, then you must clearly state your argument. A well thought out, but unpopular, opinion normally doesn't get as many downvotes as a not so well thought out opinion.
If its #2, then maybe the author should simply refrain from posting.
Is there really such a cap? Back when comment scores were displayed, there was a minimum display score, but actual score could go far below it, with no apparent minimum. Such a cap would be/is a very good idea, of course.
But it was a fun story, though.