Я думаю, это потому, что constructor и init - это не просто "чистые" функции.Это означает, что они имеют дополнительные свойства (например, init имеет свой собственный прототип), и поэтому они расширяемы.Чтобы проиллюстрировать это немного подробнее:
// size is defined as something like this
jQuery.prototype.size = function() {
// do stuff
};
// init is defined as a function too, but with additional properties
jQuery.prototype.init = function() {
// do other stuff
};
jQuery.prototype.init.functionIsAnObject = true;
Другими словами: функция - это объект, это означает, что вы можете прикрепить любые свойства, которые хотите.