Если многое зависит от того, чем занимается ваша служба.Обычно вы выбираете одноэлементное, если есть некоторое общее состояние, и, как таковая, синхронизация вокруг этого состояния может привести к узким местам, которые будут влиять на масштабируемость.Если нет общего состояния, то вы все равно можете выбрать одноэлементное, но вы должны быть осторожны, чтобы не вводить какое-либо общее состояние в какой-то момент в будущем (или, если вы делаете это, вы эффективно блокируете его).
Если вы возвращаете новый экземпляр службы каждый раз, вам не нужно об этом беспокоиться, и это может привести к лучшей масштабируемости / гибкости в будущем, хотя возврат нового экземпляра также может повлиять на масштабируемость, если этот экземпляр остается дефицитнымРесурсы (например, соединения БД).
Итак, я думаю, что реальный ответ "это зависит".Если вы посмотрите на то, как фреймворки справляются с этим, это, как правило, какое-то промежуточное решение, такое как поддержание пула сервисов (например, пулов соединений db) или модель Wcf для каждой сессии.