I think "state" is simply an overloaded term and that causes misunderstandings here. I believe by "state" GP meant specifically mutable state on the level of the programming language abstraction.
"Having state" often implies mutability, i.e. to be in a given state means the same thing can be in different states/configurations as well.
On the other hand people often also use the word "state" to refer simply to a "current state" of something at a given time, and then under this interpretation there is state in immutable objects.
As you already know, "representing (real world) state at some step/time" does not require mutability on the language level. These immutable objects are state snaphots of a hypothetical mutable object. Operations on them cannot mutate them, but instead derive a new snaphot that represents the new state at a given time after the operation. So working with those snapshot does represent state and state changes and models real world state, but the individual snaphots/immutable objects cannot be mutated.
Whether those immutable objects deserve the monicker "object", I don't really have a opinion on, but I wouldn't outright deny it.
Are they useful in similar ways that mutable objects are? I'd say so.
Immutable objects can still get you polymorphism/subtyping and encapsulation, features often ascribed to object oriented programming.