That's not true. The lambdas used in the functional version are each called once for every item in the list.
I'm going to take my own advice and go back to work :)
If I run this in the JS console I get two anonymous stack frames. The first being the console itself.
[1, 2, 3].filter(x => [][0]())