Primitive Objects are those geometric objects that are implemented in OOML using directly OpenScad code. These objects may be simple, like the cube or more elaborated like the Toroid or the Rounded Box. The difference with Parts lays on the fact that the OpenScad code is inserted directly in the OOML, while parts are composed by the addition, difference, etc of primitives or other parts. Conceptually Primitive Parts have a geometry entity, but not a real entity, and Sphere, for example, is a geometry object, which does not really exists in the world. A wheel, on the other side (even if modeled using a Cylinder) is a real existing thing, and thus, a Part.
The OOML criteria is: