Saboteur, да вы правы. Поэтому я ещё раз для автора акцентирую что хеш-функцию с солью нужно рассматривать как новую неизвестную функцию и для нее соотв надо генерить новый радужный сет таблиц.
Если хеш функция известна и популярна (md5,sha) то анализ значения проводят на радужных таблицах (rainbow tables). Для неизвестных или экзотических функций, энтузиасты генерируют таблицы сами. Лет 10 назад некоторые наборы таких готовых таблиц можно было найти в torrents.
Да. Рекурсия может быть менее читабельна. Но иногда она безальтернативна когда вы описываете формы Бэкуса Науэра например. Выражение содержащее под-выражения описать можно только через рекурсивный шаблон.