I think a framework, at least on some level, is comparable to a Windows DLL, or dynamically linked library. Such a library exists as only one copy in memory, at least for the code segment of it, as opposed to statically linked libraries which are copied with every applicatioin that uses it. Though DLLs aren't completely better, they tend to be as you can update the DLLs and all programs depending on them see the benefit without any recompiling/relinking.
So when you include NSObject.h in a file and compile, linking to the Foundation framework, you are just using the copy of NSObject.c already in memory instead of making another copy.
Maybe a framework is completely different, hehe, but at least you know what a DLL is.