Looks like this is somewhat of a limitation of AXL, in that the schema does not define a good way to indicate both the fact that the service profile should be whatever the current 'default' is as well as the actual current value of the default service profile.
I can see two potential enhancements:
- Add an attribute to the <serviceProfile) like 'isDefault'/boolean which indicates if the service profile shown is there because it is the system default, or because it was specifically set
- Change the behaviour so that when the service profile is none/default, <getUser> returns an empty value in <serviceProfile>. Apps would then need to know to go query <listServiceProfile> to determine the current system default, if they needed it.
Your hinted workaround is probably the best one, i.e. check the val