Apparently, CMPIDateTime can handle pre-epoch representations, e.g. when calling CMNewDateTimeFromChars() with "19690101000000.000000+000".
However, getBinaryFormat fails on this date because the implementation (datetime.c: chars2bin()) calls 'mktime' for validation and mktime is unable to handle pre-epoch times.
Reading through the CMPI 2.0 standard, the binary date representation should be 'long long', thus allowing negative (pre-epoch) values.
Oh, its an oversight of the CMPI 2.0 standard, explicitly requesting getBinaryFormat to return an unsigned 64bit value.
I'll guess I have to file a bug at opengroup.org then.