Відповідно до принципу розділення команд-запитів , а також мислення в даних і DDD з презентаціями Clojure слід відокремлювати побічні ефекти (модифікуючи світ) від обчислень та рішень, щоб було легше зрозуміти і перевірити обидві частини.
Це залишає без відповіді питання: де відносно кордону слід поставити "запитання світу"? З одного боку, запит даних із зовнішніх систем (наприклад, бази даних, API служб розширення тощо) не є референтно прозорим і, таким чином, не повинен сидіти разом з чистим кодом для обчислень та прийняття рішень. З іншого боку, проблематично або, можливо, неможливо розірвати їх окремо від обчислювальної частини і передавати це як аргумент, тому що ми можемо не знати заздалегідь, які дані нам можуть знадобитися запитувати.