Nevím jak to je v pythonu, ale čekal bych že buď parciální funkce něco vrátí jako error hodnotu (a to se dá cacheovat), nebo signalizuje výjimku a to beru jako side effect a není čistá. Ještě mne napadá vracení multiple values výsledek - výsledek platí, ale to snad v Pythonu není.