Я предлагаю вам прочитать эту статью, которая, я думаю, довольно хорошо объясняет, почему расширение объектов является плохой идеей, в том числе и в отношении Prototype.
В итоге:
Отсутствие спецификации
Экспозиция «объектов-прототипов» не является частью какой-либо спецификации. [...] Чтобы реализация полностью соответствовала DOM Level 2, нет необходимости показывать эти глобальные объекты Node, Element, HTMLElement и т. Д.
Хост-объекты не имеют правил
Объекты DOM являются объектами хоста [...] Объекты хоста могут реализовывать эти внутренние методы с любым поведением, зависящим от реализации, или может быть так, что объект хоста реализует только некоторые внутренние методы, а не другие.
[...] Поведение внутренних методов зависит от реализации. [...] По определению, вы работаете с чем-то, что может вести себя непредсказуемо и совершенно беспорядочно.
Возможны столкновения
Учитывая огромное количество сред, используемых сегодня, становится невозможным определить, не является ли определенное свойство уже частью некоторого DOM. [...]
Каждая именованная форма управляет свойствами теней, унаследованными через цепочку прототипов. Вероятность столкновений и неожиданных ошибок на элементах формы еще выше.
Использование некоторой стратегии префиксов может облегчить проблему. Но, вероятно, также принесет дополнительный шум.
Накладные расходы
[...] браузеры, которые не поддерживают расширения элементов - такие как IE 6, 7, Safari 2.x и т. д. - требуют ручного расширения объекта. Проблема в том, что ручное расширение медленное, неудобное и не масштабируется.
[...] как только вы начнете расширять элементы, библиотечный API, скорее всего, должен будет везде возвращать расширенные элементы. В результате запросы таких методов, как $$, могут в конечном итоге расширить каждый элемент в запросе.
IE DOM беспорядок
Как показано в предыдущем разделе, ручное расширение DOM - беспорядок. Но ручное расширение DOM в IE еще хуже [...]
Бонус: ошибки браузера
for(var ... in ...)
циклы перепутаны, так как функции прототипа также передаются.