Обыграть то, что в случае вызова через new F сначала создается пустой объект, а потом уже к нему применяется конструктор. В случае с call'ом к объекту уже применён конструктор.
function F(x) {
if (this.constructor == F && this.sealed === undefined) {
this.x = x;
}
this.sealed = true;
return this.x;
}
var f = new F(3), obj = {x: 5};
alert(f.x); //3
alert(F.call(obj)); //5
alert(F.call(f)); //ожидаем получить 3, а будет 3