Goto floor(10);
Open window;
Jump(); Goto floor(10);
Open window;
Jump();Without goto and TCO (goto by another name), you're left to transform your code to be run under a trampoline, which really makes the resulting JS unreadable.
Looking over a fairly large project here, a majority of the code is written in CPS because of callbacks to the server or delays for user interaction.
(So far, I've avoided the need to trampoline, since my call stack isn't getting too deep yet before it unwinds on it its own. But, then again, I haven't done any cross-browser testing at all yet.)
Unfortunately great power (goto) comes with great responsibility (don't produce spagetti). Most $programmers don't get that right.
Java doesn't have goto, but it has labeled break and continue statements. Great for exiting nested loops. Exceptions are another kind of structured goto. Of all the criticisms of Java, I've never heard the lack of goto bemoaned.
One thing I love about the Java designers is their humility: they thought the above was enough to cover all the cases where a goto was really convenient, but still made goto a reserved word. Just in case.
Besides, I object to bondage and discipline in a programming language. If people don't have guns, then they'll use....
The analogy still holds :-)
edit: I mean to say literally that GOTOs certainly are useful, but are far easier to create spaghetti code with than something much safer like functions. It's a cost/benefit analysis.
I hope this one is a joke. Isn't goto looked down on because of its role in the Roman Inquisition? Seriously though, the project is just a cool technical hack not meant for public consumption, right? Right?