nthcdr is a function, not an accessor. While an implementation is free to define a SETF expansion for such a function, the standard does not demand it. Moreover, it's not clear to me what would happen in cases like (setf (nthcdr 3 variable-bound-to-nil) 42).