n не уменьшается. Просто printf("LEVEL %d\n",n); выполняется вне условия if.
Вот посчитайте, что будет после if в рекурсивно вызванной rec(n==4). Выполняется printf("LEVEL %d\n",n==4); а вызвана эта функция была в условии if рекурсивно вызванной функции rec(n==3), значит после этого выполнится printf("LEVEL %d\n",n==3); и так далее.