Это, вероятно, ограничение простых примеров. На практике нет необходимости иметь отношения между клиентом и инициатором.
Клиент может сериализовать объект команды и отправить его, например, удаленной службе для выполнения, или клиент может добавить команду в очередь, чтобы другой поток снял ее с очереди и выполнил позже.