DATE(*SYS) ist eine reine Ausgabefunktion.
Wenn du einen Default haben willst, musst du das halt im Programm machen:

if MyDate = *loval;
MyDatei = %date();
endif;
exfmt MyDspFmt;

In der DSPF kannst du natürlich auch DATFMT eintragen.

Das kleinste datum(*LOVAL) ist eben der 01.01.0001.
Oder du musst ALWNULL in der PF erlauben und mit

if %nullind(MyDate) <> *zero;
MyDate =%Date();
endif;

Mit
%nullind(MyDate)=-1;
kannst du den NULL-Wert auch setzen.