It's too late to fix, but I'll post here for future reference.

Applying string-split on an empty string is defined as follows:

(string-split "" delim 'infix)  => ()
(string-split "" delim 'strict-infix) => error
(string-split "" delim 'prefix) => ()
(string-split "" delim 'suffix) => ()

string-split can be thought as an inverse of string-join, and indeed there's a nice symmetry:

(string-join () delim 'infix) => ""
(string-join () delim 'strict-infix) => error
(string-join () delim 'prefix) => ""
(string-join () delim 'suffix) => ""

However, we could've defined it as:

(string-split "" delim 'strict-infix) => ("")

Since

(string-join ("") delim 'strict-infix) => ""

We could've also done:

(string-split "" delim 'infix) => ("")

as well, for the inverse also holds, and is consistent with "the returned list will have one more item than the number of non-overlapping occurrences of the delimiter in the string."