Если речь про почту, которая должна куда-то дойти, то крайне желательно. Если, при вызове sendmail, данный параметр не задать, то в envelope from будет <user>@<hosthame>. В итоге, во-первых, уведомление об ошибке, если таковая необходимость возникнет, какой-нибудь сервер пошлёт на деревню дедушке (а-ля root@localhost), а, во-вторых, письмо не пройдёт проверку smtp callback, если таковая сервером получателя, вдруг, используется.
Кстати, PHP mail(), если кого web/php интересует, это тоже касается. Если пятым параметром не задавать -f, то и sendmail вызывается без этого параметра со всеми вытекающими.
Информация об отправителе была в теле письма, поэтому не уверен - нужно дублировать или нет, я там пример только в обратную сторону привел - письмо Васе
Необходимо. Дело в том, что письмо, включая заголовок, в том числе поле From заголовка, для почтового сервера является блоком DATA, и он туда не смотрит. From, To и прочие отображаемые и не очень поля заголовка отобразит почтовый клиент, но и только. MTA же использует данные smtp-конверта и ориентируется исключительно на них. Почтовый клиент, при отправке сообщения, формирует mail from и rcpt to на основании From и To, но, в случае такого вызова sendmail, это не происходит.
Логика такого поведения sendmail мне точно не известна, но можно предположить, что это тянется со времён, когда системные username и hostname, на самом деле, относились к E-Mail пользователя.