ну вот ты когда функцию в репле написал, нажал энтер и твой код скомпилился прямо во время работы твоей программы. В кложе, как и в других лиспах, модель исполнения и жизни программы немного другая. Я кидал тебе видео про это.
В джаве: написал в файл текст, скомпилировал в байткод, упаковал в жарник, запустил жарник на жвм, увидел что не работает, начинаешь процесс заново
В кложе: Запустил репл, скомпилировал файл, скомпилировал код из пользовательского ввода, скомпилировал код который пришел тебе из другого процесса/по сети, скомпилировал код который пришел тебе от компилятора из макроса — увидел что не работает, просто релоадишь функцию или целый неймспейс, можно даже с сохранением стейта если грамотно писать, и все во время работы твоей программы