на любом языке, где допустима рекурсия, будет именно такая ошибка в таких же программах (неправильно написанных)
Да, согласен. Однако, по моим ощущениям, в руби проще, чем в некоторых.
Каждый день новое узнаю, еще двух недель не прошло - вот узнал, что в руби можно включать оптимизацию хвостовых вызовов. Один и тот же код с включенной оптимизацией и без неё выдавал либо результат, либо ошибку stack level too deep . Но раз такое не часто пользуют, то злоупотреблять разве что в личных образовательных целях.