Although we don't do that (yet ?) in Matroska, it's possible to add new mandatory elements without a default value. Such elements should not be written when writing an older version of the doctype. They should also not be automatically added to an EbmlMaster by default.
This will require passing the EbmlDocVersion in more places. Or probably introduce a ShouldRead function which could do more than just checking the profile, for example allow dummy elements or not. Just like ShouldWrite is used to skip the elements with a default value.