Если под реентерабельным вы подразумеваете, что дальнейший вызов функции может начаться до того, как предыдущая закончилась, тогда да, все рекурсивные функции оказываются реентерабельными, потому что рекурсия подразумевает реентерацию в этом смысле.
Однако, «reentrant» иногда используется как синоним «thread-safe», что вводит множество других требований, и в этом смысле ответ - нет. В однопоточной рекурсии у нас есть особый случай, когда одновременно будет выполняться только один «экземпляр» функции, потому что каждый «неактивный» экземпляр в стеке каждый ожидает своего «дочернего» экземпляра.