I would actually say that it does do what is expected based on the information above.
Rather than splitting the action as you suggest, what if you made a split after the mail and called it automatically to effectively keep it one touch workflow? Sounds a bit crazy doesn’t it? Here’s what I mean (based on a quick test that seemed to work for me).
I have an action that no steps. When it runs however it will archive a draft because of its setting. I rarely auto archive drafts and I find it a handy addition to my actions on occasion.
Given that we can have a separate archive action like this it would be great if at the end of your mail step we could just add something that tells Drafts to archive the new draft that was created as part of this action. The issue you came across is that the action is going to work on the original draft not the new one.
What we need to do is queue up an archive action to work on the new draft.
In your first script step the new draft s defined as ‘d’. Let’s say our archive action is simply called ‘Acrhive’. Adding an additional script step at the end of the action and including the statement below along with any conditional logic to trigger it I think should then cover off your archiving need.
Give it a try and let me know if that works for you. I’ve only done a quick test of the principle, but it seemed to work for me.