WCF - это , а не , метод «вызова удаленного объекта» или что-то еще - это просто передача сообщений. Таким образом, параметр "by-ref" может компилироваться, но на самом деле он не будет делать ничего полезного.
На вашем клиенте у вас есть метод с параметрами, которые вы вызываете. Затем среда выполнения WCF перехватывает этот вызов, упаковывает параметры и любую дополнительную информацию, необходимую в сообщение, сериализует это сообщение (в текстовый или двоичный XML) и отправляет это сообщение по сети на сервер.
Затем сервер десериализует сообщения обратно в набор параметров, а компонент диспетчера на сервере создаст экземпляр класса обслуживания и вызовет соответствующий метод для этого экземпляра класса обслуживания с параметрами из сообщения.
Вся история работает в обратном направлении для ответа, отправляемого сервером обратно.
Но опять же: все, что вы обмениваетесь между клиентом и сервером, это сериализованное сообщение - нет абсолютно никакого смысла делать параметр "по ссылке" - он не может быть параметром по ссылке, конец. Сервер и клиент - это совершенно разные миры, совершенно разные объекты и классы - они просто выглядят одинаково на проводе.
Так что я думаю, что тот, кто написал этот метод WCF, не понимал принципы передачи сообщений WCF, но был привлечен тем, что чувствует WCF - как просто вызов метода. Но на самом деле это не просто вызов метода.