Como você vê na manpage:
--session-command=command Same as -c , but do not create a new session (discouraged).
Portanto, a chamada padrão requer a criação de um novo processo, porque uma nova sessão precisa de um novo PID.
Além disso, o código de retorno depende do status de saída ou do sinal que matou o processo. Este último ponto também requer um processo que monitore o status do processo filho.
Acho que isso é devido ao design. Ao contrário de su
, IMO, runuser
é feito para ser usado em scripts (portanto, nunca solicite senha, identifique melhor o status de erro e também separe o tratamento de sinais (nova sessão) do chamador.