Я думаю, что вы можете использовать определенный предел памяти для вашей машины, а не реальную разницу в функциях.
Глядя на исходный код nth в https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/RT.java, не похоже, что nth или take сохраняют голову.
Однако nth использует индексацию с нуля, а не счет по номеру элемента. Ваш код с nth выбирает 1000001-й элемент последовательности (тот, который имеет индекс 1000000). Код с take возвращает последний элемент в последовательности 1000000 элементов. Это предмет с индексом 999999. Учитывая, как быстро растет фиб, последним может быть тот, который сломал спину верблюду.
Кроме того, я проверял источник 1.3.0. Возможно, более ранние версии имели разные реализации. Чтобы заставить ваше fibo работать должным образом в 1.3.0, вам нужно использовать арифметические функции, которые будут переводить числа в bignums:
(defn fibo[]
(map first (iterate (fn [[a b]] [b (+' a b)]) [0 1])))