Сервис может реализовать несколько логических связанных функций, будет соблюдаться high cohesion, но нарушаться SRP. Так что, на мой взгляд, нет какого-то одного принципа, согласно которому можно очертить границы сервиса/микросервиса. Наверно можно попробовать выделить критерии, котрым соотвествует микросервис. Может быть модель зрелости. Максим в сегодняшнем вебинаре приблизился к решению этой задачи, описав кейсы, в которых нужны микросервисы.