Not popular opinion today, but this is where relay should communicate relays either on their own or on behalf of a user
It doesn’t make sense for a client to open a connection, broadcast an old event of somebody else requiring relays to run relatively expensive computations
It does make sense though for a relay to batch events and send through http to other relays for import purposes through relatively cheap async processing. Perhaps, taking in mind what actual users think regarding rebroadcasting events multiplied by relays trust