Почему не происходит проверки на класс объекта?
потому что в области видимости, где находится alert не видно функцию Class1. Надо вынести ее из функции fabricfunction Class1() {
}

function fabric() {
  return new Class1();
}
var o = fabric();

alert( o instanceof Class1 );
У вас проблема с областью видимости - Class1 снаружи фабрики не определён.
Если же её исправить, то всё работает: