Ditto can't be direct to a relay because it also has a Mastadon connection and its own filter capabilities, so it has to reconcile the different data flows. It just pipes things through.
I think you can have
n relays to 1 ditto
and
n communities to 1 ditto.
https://docs.soapbox.pub/assets/ditto-architecture.CAIw5zBh.svg