I understand the reason why tmp is needed in a maildir: It makes it possible to not have half-written mails in cur. However, why is new needed?
Couldn't the mails just be dropped into the cur folder directly with a name <uniq>: or so? As soon as a MUA wants to add flags, it could initialize the uniq part. That would probably make things a (well, just tiny) bit simpler to code.