Why use jQuery.isObject in jQuery.extend

Why use jQuery.isObject in jQuery.extend

In the current implementation of jQuery.extend we can find the
following code:
// Recurse if we're merging object values
if ( deep && copy && typeof copy === "object" && !copy.nodeType ) {
    var clone;
    if ( src ) {
        clone = src;
    } else if ( jQuery.isArray(copy) ) {
        clone = [];
    } else if ( jQuery.isObject(copy) ) {
        clone = {};
    } else {
        clone = copy;
    }
    // Never move original objects, clone them
    target[ name ] = jQuery.extend( deep, clone, copy );
}
If the first test passes, we know that copy is of type object. So what
is this jQuery.isObject exactly supposed to test?
It's probably meant to be more precise than the first test, excluding
objects such as "new Date()". What is strange is that the current
implementation of isObject always returns false (and seems therefore
useless, as suggested in http://dev.jquery.com/ticket/4946) without
causing any test to fail, while replacing its code with
function( obj ) {
return Object.prototype.toString.call( obj );
}
will cause one test to fail (test 10 with custom objects)...
Could someone light me up?
--