Плохого в том, что у вас есть 5 разных кнопок, но все запускают одно и то же событие. Вы будете вешать один и тот же обработчик на 5 разных айдишников? или все-таки создадите один класс, пропишите только для него обработчик и будете писать этот класс для всех кнопок, на которые вы хотите повесить какое-то действие? Я думаю ответ очевиден. А классы вида .js-add-to-cart делаются для того, чтобы было проще отыскать ваш функционал в коде, ведь сразу понятно что сюда повешен обработчик какой-то, чем пытаться потенциальный ID выискивать в вашем js коде.