Я пропоную вам прочитати цю статтю, яка, на мою думку, досить добре пояснює, чому розширення об’єктів є поганою ідеєю, що стосується і прототипу.
Підсумовуючи:
Відсутність специфікації
Експозиція "об'єктів-прототипів" не є частиною жодної специфікації. [...] Для того, щоб впровадження повністю відповідало рівню 2 DOM, немає необхідності виставляти ці глобальні об'єкти Node, Element, HTMLElement тощо.
Приймаючі об'єкти не мають правил
Об'єкти DOM - це об'єкти хоста [...] Хост-об'єкти можуть реалізувати ці внутрішні методи з будь-якою поведінкою, залежною від впровадження, або може бути, що об'єкт хоста реалізує лише деякі внутрішні методи, а не інші.
[...] Поведінка внутрішніх методів залежить від впровадження. [...] За визначенням, ви працюєте з чимось, що дозволено поводити себе непередбачувано і цілком хаотично.
Можливість зіткнень
Враховуючи величезну кількість середовищ, які використовуються сьогодні, неможливо сказати, чи певна властивість вже не є частиною DOM. [...]
Кожен з названих властивостей тіней керування формою успадковується через прототип ланцюга. Шанс зіткнень та несподіваних помилок на елементах форми ще більший.
Використання якоїсь стратегії префіксів може полегшити проблему. Але, ймовірно, також принесе додатковий шум.
Продуктивність накладних витрат
[...] браузери, які не підтримують розширення елементів, як-от IE 6, 7, Safari 2.x тощо, вимагають розширення об'єкта вручну. Проблема полягає в тому, що розширення вручну повільне, незручне і не масштабується.
[...] щойно ви починаєте розширювати елементи, API бібліотеки, швидше за все, потрібно повертати розширені елементи скрізь. В результаті методи запитів, такі як $$, можуть розширити кожен елемент запиту.
IE DOM - безлад
Як показано в попередньому розділі, розширення DOM вручну - це безлад. Але ручне розширення DOM в IE ще гірше [...]
Бонус: помилки браузера
for(var ... in ...)
петлі збиваються з часу передачі функцій прототипу.