Возвращаясь к основам кэширования, вам не следует принимать решения о двух разных уровнях стратегии кэширования вместе, это два разных решения.
Для каждого уровня потребителя и службы, если вы идентифицируете модель использования, которая имеет очень высокую вероятность того, что потребитель запрашивает одни и те же фрагменты информации в течение срока действия данных, вы кешируете их. Если шаблон использования имеет только отдаленный шанс получить доступ к одному и тому же фрагменту данных в течение срока действия данных, не тратьте впустую память и процессор для его кэширования.
Если уровень вашего веб-сервиса уже кэширован для соответствия шаблону конечного потребления, это означает, что уровень ресурсов не должен вызываться повторно в течение периода действия данных.
Тем не менее, метод веб-службы не выглядит хорошим дизайном, который перекрывает информацию друг с другом. Я думаю, что ваша проблема не в кешировании, а в том, как ваш объект DTO и дизайн сигнатур метода WS касаются правильной группировки ваших данных.
Но в некоторых случаях, скажем, каждый ваш метод веб-службы должен ссылаться на справочную таблицу на уровне ресурсов. На данный момент это независимое решение на уровне ресурсов, которое вы можете решить кэшировать на уровне ресурсов.
Мои два цента ...