Наверное не вполне оптимально будет для конкретного компонента и конкретной задачи
для конкретного компонента всегда может быть более оптимальное решение, но у меня не было такой цели - была задача и я сделал универсальное решение, тем более, что когда оно было реализовано сам K2 был еще в зачаточном состоянии и подобных событий там не было. Да и что количество, что владелец, что сама подписка - все это происходит не при выводе комментариев (что безусловно частая операция), а при добавлении нового комментария и существенно на производительности не скажется.
А если язык сайта один, то можно реализовать и без подключения JCommentsSubscriptionManager, поскольку данные для бОльшей части полей таблицы уже доступны.
Ну если это делать на событии onAfterK2Save то нет смысла экономить - это не такое частое событие. Другое дело, что такая реализация будет добавлять подписку при каждом сохранении, и у пользователя не будет шанса отписаться от нее
А в моей реализации, подписка производится только тогда, когда добавляется первый комментарий и подписки еще не было.