return n * kaijyo(n - 1);

の処理の流れは

1. kaijyo(n - 1) を実行する
2. n とその戻り値を掛けた値を返す

であって、自己再帰(1)より後に(2)の処理が入る。