Смотри, когда выполнение кода доходит до else вызывается эта же функция только с другими параметрами, код дальше не идет. Здесь ожидается завершение внутреннего power(). Дальше во внутренней power такая же схема и так по цепочке они вызываются пока не выполнится условие выхода из функции if(n == 1) (n -1 уменьшаем передаваемый параметр). И обратно по цепочке будут возвращаться значения. То есть вызов так идет power(2, 4) -> ждет power(2, 3) -> ждет power(2, 2), а потом результаты как бы сворачиваются в обратном направлении (читать справа-налево)
power(2, 4) получил в том же else 8 <- power(2, 3) вернет 8 <- power(2, 2) вернет 4
. И в конце из самой первой функции возвращается значение 2 * 8 (8 это результат вызовов цепочки внутренних power)