The crucial difference between bounce/reject and reply is that the
envelope sender is used. There are two cases where it is very important
to use that rather than the reply-to/from header:
(1) Change of address.
(2) Rejecting a mailing list which won't unsubscribe you.
In either of these cases a "reply" function is actually the wrong thing to
do, as it would go to the author of the message rather than the mailing
So I think bounce/reject is critical functionality in Sieve and is
important independent of reply.
I also think it should use DSN syntax. I'm looking forward to the day
when MUAs can automatically associate DSNs and MDNs with the messages that
P.S. I think it's pointless to argue at what point Sieve is executed. As
long as we know what objects it operates on, its function is well defined.