For a `gecos` string like `,,,`, `clojure.string/split` produces `[]` so `interleave` produces an empty result (it stops on the shortest sequence) and so the `apply assoc` fails with two few arguments.
This ensures that the `gecos` string will always produce a non-empty result from the `split` so the rest works.
Note that `(split "a,,," #",")` produces `["a"]` -- the empty trailing elements are ignored/dropped.