> To write robust code, you're forced to use iteration instead.
That's exactly the point. You can use nice functional idioms in Python as long as you make the main loop(s) that crunch data iterative. Same thing in Javascript.
Adding tail-call optimization adds little to Javascript; it's nice to have but has no high return on investment (in terms of the effort you put into the language vs. what becomes impossible if you omit it).
Case in point: Think of all the criticism directed at Python. The lack of tail-call optimization is not voiced very frequently.