До колкото разбрах, причините са исторически – още от първите версии на JS, променливите имали тип и стойност. Типът бил някакъв системен код, който код, специално за типа „обект“ бил 0.
Обаче и самата стойност NULL в JS се представяла като 0.
И така се получило нещо като съвпадение.