По-моему, оглушительный «успех» Prototype.js и Sugar.js хорошо говорит о том, как это здорово и полезно — срать в прототипы встроенных объектов.
Делать так можно только в том случае, если вы пишете полифилл для IE.
В самом JQuery вроде эти методы добавляются в момент вызова $()
Нет, там все просто.
on
это обычный метод в jQuery.prototype.
Путаницы добавляет несколько моментов: $ это jQuery, вызов $(selector) — это вызов new jQuery(selector), а $.fn — это ссылка на jQuery.prototype, ну и плюс неразбериха из-за того, что $ — это god-object и принимает на вход строку с селектором, строку с HTML, функцию, DOM-элемент(-ы) и черта в ступе.