Я думаю, что лучше, чтобы DTO содержал ссылку на объект Domain, чтобы потребители DTO могли начать использовать объект Domain. Тем не менее, если потребители DTO не должны изменять объект Domain, вам может потребоваться, чтобы DTO содержал значения, инкапсулированные в объекте Domain. Это может быть сложно, так как вам может понадобиться сделать глубокую копию объекта Domain.
Я не уверен, почему проблема в том, что представление типа DTO как службы может привести к тому, что использование его получателей / установщиков будет совершено в оба конца. Если служба является удаленной, возвращаемый DTO все равно сериализуется, и ваши получатели / установщики получат копию значений. Если служба не является удаленной, выполнение «кругового обхода», по-видимому, не является большим штрафом, поскольку клиент и служба находятся в одном пространстве процесса.