Может ли это привести к утечкам памяти?
-Если функция FOO () завершится до того, как тайм-аут вызовет ее снова, то нет.Стек должен быть очищен.
Лучше / яснее ограничивать количество вызовов функции?
-Да, поскольку ваша переменная тайм-аута в конечном итоге переполнится и может привести к непредвиденным результатам.
Будут ли другие языки использовать такой подход или существуют другие мировоззрения вне мира JS?
- Зависит от того, как функции таймера работают для используемой вами библиотеки / языка.Но это похоже на простой и правильный способ увеличить время ожидания.