Согласно моему маленькому опыту на Yii:
Компоненты - это классы, которые могут помочь вам написать бизнес-логику на основе ваших моделей. Вы определенно не хотите кодировать всю свою работу в контроллерах, тогда вам нужен компонент для распространения вашего кода и вызова его в контроллере.
Расширения похожи на библиотеки, которые в основном не зависят от ваших моделей, и, следовательно, могут быть использованы в любом месте в текущих или последующих проектах. Например: расширение электронной почты или класс, отправляющий твит в вашу учетную запись Twitter.
Может быть другим для других кодеров / пользователей.