Четыре слоя работают по-разному: React memoization в одном render, Next Data Cache между requests, Full Route Cache для static output, Router Cache в браузере.
Разбор
Request Memoization — в React, не Next. Один render: одинаковый fetch(url, opts) → promise первого вызова. Layout + page с одним helper — один network call. Очищается после render.
Data Cache — persist fetch results на сервере между requests. Next 15 flipped default: fetch uncached, пока не cache: 'force-cache', next: { revalidate: n } или next: { tags: [...] }. В Next 14 кэшировался по умолчанию. On-demand: revalidateTag() / revalidatePath().
Full Route Cache — rendered output static routes на build. До revalidate или redeploy. Dynamic API (cookies(), headers(), uncached fetch, searchParams) opts out → per-request render.
Router Cache — client RSC payloads для prefetched/visited routes. Next 15 default staleTimes для dynamic pages = 0 — не reuse across navigations без config.
Итог
Знайте flip Next 15 (fetch uncached by default) и различие memoization (one render) vs Data Cache (cross-request).