Multicharacter separator for the 'expand' function

When using a multicharacter separator in a string, the expand function will insert a blank row between the separated strings.
E.g.:
a:='abcxxdef'; expand('xx',a);

gives the following content for 'a' (3 rows):
---- abc def ----

Why does it do that?