But, I'm skeptical since there are garbage collectors out there for C++ and we all know C++ doesn't have a Unified Type System. Even Java allows for different garbage collectors. So I wouldn't think that Object would play a role in it.
The reason I said that was sometime back I had gone through some simplistic garbage collection code and I remember distinctly that the objects had to be inherited from a common base IMMObject or something, which kept track of the various objects created. This is as far as my memory serves me, cause I think this was quite some time back!!
I was thinking of garbage collection myself and I do think a common base is required that keeps say two things, a count and a vector of pointers (or references) to the objects created, at the very minimum.
Or maybe it's just a whole "everything has to be OOP's" thing. So they created a single root hierarchy.