A
И если потребуется удалить кнопку или изменить то что она делает то придется потом пройтись и удалить/поменять код во всех этих файлах/местах (вместо того чтобы удалить его одни куском вместе с кнопкой когда вся логика будет записана внутри onClick-обработчика на кнопке).
Ну и плюс намного удобнее читать код и понимать что происходит когда все что делает кнопка будет записано внутри обработчика и не нужно прыгать по куче файлов и вручную собирать картину в голове какие события вызывает кнопка и как на нее реагируют различные части приложения
В итоге наворачивать все эти слои косвенности имеет смысл только тогда когда мы начинаем дублировать код. Например, если несколько кнопок должны выполнить одну и ту же логику то тогда действительно нужно вынести логику в функцию чтобы ее не дублировать в каждом обработчике
а потом продирайся через дебри верстки, стилей, утилитарного кода, и реальной бл, и все это удовольствие растянуто строчек на 300