Už jsi zkusil vyměnit funkci běžícímu programu? Každý interpretr to nepřekousne. Kromě toho tuto funkci zvládá Lisp atomicky - je možné tuto funkci změnit i v okamžiku, kdy je v ní proces.
Tak tohle bych považoval ještě za ten nejmenší problém. Objekt, který obsahuje kód funkce, leží někde na haldě a slovník symbolů na něj odkazuje. Objektu je nastaven příznak (zvedne se čítač), když je funkce vykonávána. V prvním vhodném okamžiku se slovník přesměruje na novou funkci a je vymalováno. Co se ale stane s funkcemi vyšších řádů, případně se změnou typu očekávaných parametrů? Co se stane se stavem, který může v nejhorším případě pořád cirkulovat někde v programu i po několika hot swapech? Bojím se, že přehnaná dynamičnost smrdí docela velikým průšvihem.
Každopádně bych řekl, že schopnost hot swapu není dána inherentně jazykem, ale musí ho umět především virtuální stroj. Pokud vím, umí to třeba i JVM. V Pythonu by bylo třeba to pořešit explicitně (reload modulu), ale představit si to dokážu.