Сообщение от Gvozd
			 
		
	 | 
	
		Все-таки как ваш алгоритм от работает на примере? 
var a = {};//адрес - 0x0008
var b = {};//адрес - 0x00A8
a.a = a;
b.a = b;
alert(a == b)
 
И что дальше? 
равны текущие свойства или нет? Если да, то почему?
	 | 
	
Вообще  если сравнивать формально как и желает того оп, то да, они равны ибо значения ключей имеют одинаковый смысл на данный момент времени. Где они там в памяти и как ссылаются сейчас не имеет значения.
И если подходить к вопросу таким образом, то сравнение провести можно просто.
Другое дело - нафига оно надо?)