Why isn't my create() function called when I compile an object?

This is mentioned in the DGD documentation. The create() function is only called just before the object is first accessed by a call_other. To change this behaviour one can simply mask compile_object in the auto object with a version which accesses the object straight after it is compiled and hence provokes the calling of the create() function by the driver.