In general, default values do not fit well into a meta-layer architecture, as a value of the model level is to be specified at the meta-level. A default value can be constant or derived and primitive or non-primitive, of these cases only constant primitive default values fit well with a meta-layer architecture.
For other cases we could currently just specify the same as what we do for derived but non-opposite attributes and the methods we generate for them. => raise NotImplementedError() #This is a stub-method. We want to give as much support for automation as possible, but where impossible to do without the current mse-suport; the programmer has to fill in the blanks in the generated code.
As far as I see default values declarations are only important for code generation. For all other cases; you just use what's in the "initialize" as default value.
I wouldn't immediately start providing support for other things by means of a query language; this would convert the fileformat MSE into a language of its own (which is then translatable to all the other languages which use MSE???) which is also not the purpose I guess.