If there is a message being routed to this transport, and the transport
is going to handle multiple recipients of that message, then
"$local_part" has no meaning, because the message is being delivered to
multiple recipients. In a transport, "$local_part" refers to the
recipient, not the sender. It's not likely that using a single local
part as the authenticated sender would work in this transport anyway,
because they would not have to access to post into each recipient's
subfolders.
If you want this to work in this way, you will have to add "batch_max=1"
to this transport, and suffer the consequences... there will be more
server load, and you will defeat Cyrus' single-instance-store for
multiple copies of the same message. I have been running my servers this
way for quite some time, and I don't mind giving up those features. What
I get out for the effort is never having to add "anyone p" ACLs to
subfolders, nor do my users need to do that.