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."