multipart-body := [preamble CRLF]
dash-boundary transport-padding CRLF
body-part *encapsulation
close-delimiter transport-padding
[CRLF epilogue]
From RFC 2046.
And from RFC 2234 (ABNF syntax)
The operator "*" preceding an element indicates repetition. The full
form is:
<a>*<b>element
where <a> and <b> are optional decimal values, indicating at least
<a> and at most <b> occurrences of element.
Default values are 0 and infinity so that *<element> allows any
number, including zero; 1*<element> requires at least one;
3*3<element> allows exactly 3 and 1*2<element> allows one or two.
The syntax, as I decipher it, requires one body-part but
zero or more encapsulations (which is what a second or nth
body part is called). So multiparts with just one part
are allowed.
That does not settle what do in ebxml, but there is
nothing "wrong" with a multipart with one body part.