Насколько я понимаю, вы спрашиваете, имеет ли смысл объединять уровни обслуживания так, чтобы вам приходилось иметь дело только с одним уровнем. На высоком уровне, я думаю, это имеет смысл. Чем проще, тем лучше, если не все так просто, что вы не можете достичь своих основных целей.
Если ваша основная задача - производительность, а вызовы к вашим услугам встроены (это означает, что вызывающий абонент ожидает ответа), то объединение уровней может помочь вам в достижении большей производительности, поскольку вам не придется иметь дело с накладные расходы дополнительных сетевых задержек дополнительных физических уровней. Вы можете использовать Task Parallel Library (TPL) для реализации вашей логики потоков.
Если вашей основной целью является масштабируемость, а вызовы к вашим услугам являются внеполосными (это означает, что вызывающая сторона реализует шаблон «забей и забудь»), тогда использование очередей обработки и рабочих ролей может иметь больше смысла. Одним из принципов облачных вычислений являются слабо связанные сервисы. Хотя у вас больше работы по техническому обслуживанию, у вас также есть больше возможностей для самостоятельного наращивания слоев. Ваши рабочие роли могут также использовать TPL, упомянутый выше, чтобы вы могли развертывать свои рабочие роли на более крупных виртуальных машинах (скажем, с 4CPU или 8), что позволило бы минимизировать число развернутых экземпляров.
Мои 2 цента. :)