Дело вкуса. Не могу сказать, что это очень плохой подход, но и используют его нечасто.
Проблемы, которые могут возникнуть - это конфликт имен с другими либами, которые используют такой подход.
Это пожалуй самая существенная проблема. Касается встроенных, стандартных объектов js'a, типа string, array и т.п.
С другой стороны, это может быть очень удобно в некоторых кейсах. Вызывать вашу кастомную функцию на строке или массиве. Допустим, для своих нужд вы сделали более производительный метод, или очень полезный лично в вашем проекте, который отсутствует в стандартах.
В общем, у стандартных объектов прототип я бы наверное трогать не стал, а у кастомных- почему бы и нет. Только в таком случае весь код нужно писать в прототипном стиле, без синтаксического сахарка.