if default profile required for default state, then initial task can help ("When a setting is applied by the profile's Enter Task, its value is restored after the profile becomes inactive again."
http://tasker.dinglisch.net/userguide/en/settings.html)
if profile is changing not only the states (e.g. variable values) - Brian's solution will be better, but in case of 3 profiles I do so:
not default profile:
enter task:
set %NotDefaultCounter = 0 if
%NotDefaultCounter isn't set
add
%NotDefaultCounter 1
...
exit task:
substract
%NotDefaultCounter 1
default profile context:
%NotDefaultCounter < 1