Your point that entities are immutable and reources are not is, of course, correct. They apply to entities. I'm not sure about this one. But byte range requests are made against resources and not entities. It seems that the real point is that the link between a byte range and a reource is a transient thing, whereas the link between a byte range and an entity is permanent.
Entities are immutable.
They don't change. I'm not quite sold. As I indicated in an earlier message, it may be that a byte range lock is not a useful concept, but it is still meaningful. For the purposes of this post I will define a version of a reource to be a resource together with a unique validator for that resource. With this definition, it makes sense to require that new versions of a resource can only be created subject to the constraint that the byte range 0-500 is the same for both versions.