Не думаю что только для компании. Я такое видел в бест практис, для читаемости кода так надо делать, сразу понятно что за протокол, что делает, за что отвечает и тд. Не надо искать методы.
К сожалению не всегда это возможно. Например, когда реализация протокола требует хранимых свойств. Тогда они переносятся в основной класс/структуру/енам и вся эта политика едет в одно место. Свойства в основной декларации, их использование в экстеншене (которые только там и нужны)