Something like this would be useful:
rsync foo s1: --add-destinations s2:dir s3:dir
rsync foo s1: --to s1: s2:dir s3:~
These would be separate rsync (and ssh) connections. What use case would justify bundling them together into a single rsync session? The only benefit over multiple exections of rsync would be a lack of per-session error handling.
What I'm after is an argument syntax that supports copying to multiple destinations.
It's fine by me if rsync executes a multiple-destination command via multiple, sequential copies.
I am not advocating an incompatible change that would require a --to argument even for a single destination.
If you want to run them in parallel then use gnu parallel. It would keep the specified unmber of jobs running until it runs out of new jobs.
This is not about running them in parallel.
I'd suggest creating a helper script that then does a loop and runs rsync several times.