вы пробовали что-то вроде:
query = query.Distinct();
?
Возможно, вам придется раскрыть, как написаны спецификации, чтобы дать больше данных.
Например, я не понимаю, почему ваш запрос не похож на:
var query = from t1 in context.Clients.Include("ClientAddresses")
where specification.SatisfiedBy() &&
t1.ClientAddresses.Any(spec.SatisfiedBy())
select t1;
Обновление
Посмотрите, работает ли это. Не уверен, сколько из этого поддерживается EF. Это очень похоже на ваш оригинальный запрос
var query = (from t1 in context.Clients.Where(specification.SatisfiedBy())
.Include("ClientAddresses")
from t2 in context.ClientAddresses.Where(spec.SatisfiedBy())
where t1.ClientKey == t2.ClientKey
select t1)
.Distinct();