Functional structures give us genericity: an operation written once, instead of rewritten for every container. JavaScript keeps shipping the specialized version without the general one, and we pay for it in duplicated APIs and glue code.
REST as practiced usually arrives wrapped in HTTP — verbs, URLs, status codes. Strip all of that away and a more general principle is left underneath: for any object, we should be able to create it, read it, update it every valid way, and delete it, one at a time or as a member of a collection.
Some types arrive with their operations already specified — by mathematics. If a type is a number, a set, or a sequence, math has written the complete API for us; the work is to implement it, and to implement it efficiently.
General code comes out better than code cut to fit one job, and its authors are the first to benefit. When we cannot afford all of it, the way down runs against instinct: work out the ideal shape first, then cut what today does not need, and keep a plan for putting it back.