There is a bug report against GDM (6557079) which points out that if something makes GDM crash on restart makes GDM crash over and over in an endless loop. For some reason SMF doesn't detect there is a problem and disables the service automatically.
Is there some standard code that you use in SMF so that repeated crashes are detected? Refer to the bug report 6557079 for additional information. Thanks, Brian