You can see what's part of any particular library using the nm(1) tool.
If you run this on libobjc, you'll find that NSObject is, in fact, provided by libobjc:
% nm /usr/lib/libobjc.dylib | grep -F NSObject
⋮
0000000000021688 t +[NSObject _isDeallocating]
0000000000021674 t +[NSObject _tryRetain]
0000000000021780 t +[NSObject allocWithZone:]
000000000002176e t +[NSObject alloc]
0000000000021699 t +[NSObject allowsWeakReference]
0000000000021712 t +[NSObject autorelease]
0000000000020fa6 t +[NSObject class]
000000000002115a t +[NSObject conformsToProtocol:]
00000000000217ea t +[NSObject copyWithZone:]
00000000000217e6 t +[NSObject copy]
000000000002178d t +[NSObject dealloc]
⋮
(“t” means that the symbol is provided by this library; “u” means that the symbol is undefined, meaning that this library uses it but it must come from somewhere else.)
This isn't the first time they've moved NSObject's implementation; in Lion, you'll find it in CoreFoundation.framework.
I've got no clue why they've moved it around. At any rate, it's an implementation detail; officially, NSObject is still part of Foundation.