Блок else выполняется.Вы бы поняли, если бы вы добавили оператор printf в блок else, как этот.
int i=1;
int main()
{
if (i<5)
{
i++;
printf("%d\n",i);
main();
printf("\n\n%d\n",i);
}
else
{
printf("From Else Bloack, value of i is ",i);
}
return 0;
}
Блок else выполняется, когда условие предыдущего блока if становится ложным.