As others mentioned useImmer is a more bulletproof solution then assuming your state can always be modeled by a single layer Object though.
Actions make state more debuggable. Selectors make rendering more performant and often help structure complex rendering logic. Also, Redux is a way of not having to define asynchronous control flow by composing components, which can get really messy.
Granted, it's not necessary for every app.
And with Typescript, it's not a bit unpleasant to work with.
Also, the setters are usually passed around all over the place, so no, I don't think the point is centralizing component state at all.
> It's not mutable during the render function
I don't think that's the point at all when people talk about mutability. To me mutability is just a proxy for "lacking access control", which again goes back to the point about centralizing state updates. So arguing about the technicality of what is mutable and what is not is pointless.