Я думаю, у вас все еще есть недопонимание в отношении способа обработки возвращаемых значений и привязок.
Все в паре паренов выражение возвращает значение, которое значение может использовать в другом выражении или связать с символом.
У вас есть
(apply struct storeinfo (clojure.string/split input #","))
Возвращает значение, потому что есть только одно выражение. Это довольно просто, просто посчитай большинство парней.
А поскольку у вас больше ничего нет в let, у вас есть нечетное количество форм (выражений) в let.