Во-первых, плагин Reactions и компонент темы change-like-icon выполняют (почти) не одно и то же.
Да, с помощью плагина Reactions можно изменить иконку лайка, но его основное назначение — предлагать несколько возможных реакций, поэтому его функциональность гораздо шире, чем просто косметическое изменение.
Плагин может делать всё, что может компонент темы, но компонент темы не может делать всего, что может плагин.
Плагин состоит из кода на стороне сервера и на стороне клиента,
а компонент темы состоит только из кода на стороне клиента и должен опираться на существующий код на стороне сервера.
Это верно в отношении этих. Я сегодня не особо думал, реактивность — мое второе имя
Так вот — в реальном мире плагины и компоненты никогда не делают одно и то же, и тогда единственная причина использовать тот или иной — это то, для чего он предназначен?
Ранее это был плагин, но когда часть его функционала была перенесена в ядро (маленькие изображения), я смог перенести большую часть возможностей в компонент темы, чтобы расширить аудиторию и упростить установку.
Некоторые продвинутые функции, требующие изменений в бэкенде, я добавил и сохранил в дополнительном плагине.
Ещё один хороший пример здесь: Guest Gate Theme Component. Изначально это был плагин, но оказалось, что в этом нет необходимости, поэтому он был возрождён как новый компонент темы (плагины появились раньше компонентов темы).
Вероятно, ещё один или два плагина можно преобразовать в компонент темы (я могу вспомнить один на ум)… и, скорее всего, появятся ещё кандидаты по мере добавления новых функций в ядро API…