Experimente em http://jsfiddle.net/ivan_sim/N8TVV/13/
Resumindo,
$ .isPlainObject (object) retorna true se o objeto for criado usando {} ou novo Object . Caso contrário, ele retorna falso.
var obj1 = new Object;
console.log($.isPlainObject(obj1)); // true
var obj2 = {};
console.log($.isPlainObject(obj2)); // true
var obj3 = {var1:"val1"};
console.log($.isPlainObject(obj3)); // true
var nullVar = null;
console.log($.isPlainObject(nullVar)); // false
var strVar = "";
console.log($.isPlainObject(strVar)); // false
var array1 = [1,2,3,4];
console.log($.isPlainObject(array1)); // false
$ .isEmptyObject (object) retorna true se o objeto for um Objeto Javascript simples e tiver propriedades. Se o objeto não for um objeto Javascript , os resultados podem variar de navegador para navegador.
var obj1 = new Object;
console.log($.isEmptyObject(obj1)); // true
var obj2 = {};
console.log($.isEmptyObject(obj2)); // true
var obj3 = {var1:"val1"};
console.log($.isEmptyObject(obj3)); // false
Exemplo completo em http://jsfiddle.net/ivan_sim/N8TVV/13/