Well, it wasn't the length of my .forward causing the repeats after all.
I thought it was because the last time I got repeats like this occurred when
I edited an embedded newline into the pipe in .forward (Stephen recommends
against that because not all systems can handle it).
But it's not the length after the change; it's the fact of the change. I've
made several edits to my .forward in the past few days, you see.
And this, apparently, is the problem: I run a mailing list here and receive
copies myself. When one or more other members' sites don't respond for a
while and the message remains in the outgoing queue, for some reason smail
keeps re-examining addresses that already succeeded, such as my own. If a
local address is a user with a .forward and the .forward has changed, then
smail decides that the previous success no longer counts and it sends another
copy. (I imagine it would do the same if a local address is an alias and the
translation of that alias has changed.)
I don't understand why smail is going back over addresses to which delivery
has already succeeded, but I'm sure that's what's happening. I thought it
was the new length of .forward, but the problem is just that .forward has
changed.
At any rate, this is not a problem with procmail, but it might be showing up
a weakness in .forward files (all the more reason to make procmail the MDA if
you can).
I wonder what would happen if I made a change to .forward that didn't alter
the length ...