RF_ClassDefaultObject vs RF_ArchetypeObject

What’s the difference between a RF_ClassDefaultObject vs RF_ArchetypeObject. I know that the CDO exists for each class and acts as a template when creating an instance, however when is ArchetypeObject used?

Are all RF_ClassDefaultObject a RF_ArchetypeObject?
If true are there RF_ArchetypeObject that are not RF_ClassDefaultObject?

The components of a CDO sound like good candidates for using ArchetypeObject without being ClassDefaultObject.

And yes, all CDOs should have ArchetypeObject flag. This is from the code that creates the CDO :

Ohh didn’t think about that. So I’m guessing any instanced object in a CDO will be a RF_ArchetypeObject but not a RF_ClassDefaultObject.

And if an object is referenced in a CDO that’s not a RF_ArchetypeObject, it will just copy the pointer to it rather than copying the object itself?