En la función binario, no solamente se tiene la llamada recursiva sino también una instrucción normal, la cual se debe ejecutar una vez haya concluido la recursividad, espero puedas visualizarlo con este ejemplo:
Suponiendo que el número ingresado sea 4
binario( 4 ), llamada dentro de la función main
4 > 0, se cumple, llama a binario
--binario( 4 / 2 ), binario se llama a si misma pasando 2 como argumento (4/2)
--2 > 0, se cumple, llama a binario
----binario( 2 / 2 ), binario se llama a si misma pasando 1 como argumento (2/2)
----1 > 0, se cumple, llama a binario
------binario( 1 / 2 ), binario se llama a si misma pasando 0 como argumento (1/2)
------0 > 0, no se cumple, volvemos al flujo del programa
------cout (1 % 2), después de llamar a binario(1/2) y retomar el flujo del programa, se llama a cout( 1%2)
----cout (2 % 2), después de llamar a binario(2/2) y retomar el flujo del programa, se llama a cout(2%2)
--cout (4 % 2), después de llamar a binario(4/2) y retomar el flujo del programa, se llama a cout(4%2)
se continúa con el programa
-----------------
Edición:
Je, Eternal Idol me ganó otra vez mientras escribía
.