Ну тоже такое. В setTimeout с рекурсией есть смысл, когда надо считать интервал от конца выполнения колбэка, в setInterval, когда необходимо начало выполнения через равные промежутки времени. То, что в реализациях через setInterval могут быть проблемы из-за специфики подхода, который применяется, не значит, что применение setTimeout обуславливается этими проблемами.