Be honest now, did you actually read the article ;-) because it answers that exact question.
---
> Languages with Tail Call Elimination will recognize this situation and basically rewrite the function into a while loop. Since this is a low-level function, we should do the same, but sometimes it's hard to know when you're recurring dangerously.
---
> but it won't go away just because you don't like it.
I didn't like it and it go away. Out came Dart. I like Dart. All worked out well so far.