An additional thought here. The DFDL spec says that to be potentially trailing an element must have a possible zero-length representation.
So, an element such as of type int, which is not nillable with zero length, not empty with default value with zero length, such an element cannot have a zero-length representation.
If one of these elements is in an all-optional minOccurs=0 array at the end of a sequence, then trailing extra separators would NOT be acceptable regardless of trailingEmpty being lax, because the element is not potentially trailing.
However, elsewhere it says that absent (therefore missing) elements are never created for optional elements.
Zero length for such an element means "absent" and so missing. And that means not put into the infoset which suggests that they are acceptable and ignored (though counted towards maxOccurs positions in a positional sequence)
This seems completely ambiguous to me.