The construct you are asking about:
$.myUserFunc = function() {}
creates a static function (available globally) on the jQuery namespace object. This is different from a jQuery plug-in method.
There are several reasons why one might do this - some are perhaps better justified than others.
You may create a jQuery utility function that is directly related to jQuery (only useful when using jQuery), yet is at a different level than a plug-in method.
You have a global function that you don't want to put in the global namespace (for all the typical reasons that lots of top-level global name are avoided) and you happen to be using jQuery so you choose to put your global function on the jQuery namspace object.
In my opinion, the first makes some sense. If it's a jQuery-specific function, yet it's a global function and not a method of a jQuery object (like plug-ins are), then putting it on the main jQuery makes some sense. There's really no reason to implement yet another top level namespace when there's an appropriate one already there and your function is related to that namespace object.
In my opinion, the second reason doesn't make as much sense from an architectural point of view. If this function isn't a jQuery-specific function (e.g. doesn't use or operate on jQuery objects), then it really doesn't belong on the jQuery object. It's a general purpose function and should be defined in a more general purpose way, either as a singleton global function or, if you have multiple types of related functions like this, put it on its own namespace object.
This said, in many cases, you can just create your own closure and define your own functions for use by your own code without having to put them either in the global namespace or on a namespace object. So, unless these functions must be globally accessible from anywhere, they don't need to go on the jQuery object.
For example, let's suppose you had two jQuery plugin-methods that wanted to share a common function. Obviously, this function has to be defined outside of these two plug-in methods. But, it does not have to be defined globally. I can be put in a closure and shared that way:
// define closure
(function() {
// declare shared function in a closure
function commonFunc() {
// common code here
}
// define first plugin method
jQuery.fn.plugin1 = function() {
// do stuff
// ....
// use common function
commonFunc();
};
// define other plugin method
jQuery.fn.plugin2 = function() {
// do different stuff
// ....
// use common function
commonFunc();
};
})();