From the isKindOfClass: method documentation in NSObject:
Be careful when using this method on objects represented by a class cluster. Because of the nature
You are reading the warning wrong. All it says is that, just because it is internally represented as something that is mutable, does not mean you should try to mutate it, because mutating it could violate the contract between you and whomever you got the array from; it might violate their assumptions that you will not mutate it.
However, the test given by isKindOfClass: is definitely still valid. If [something isKindOfClass:[NSMutableArray class]], then it is an instance of NSMutableArray or subclass thereof, which pretty much means it's mutable.