Byte ranges (in HTTP range retrieval) don't apply to resources.
They apply to entities. An entity is the data stream that
you get when you perform a GET operation. Servers are free
to ignore byte range requests and deliver the entire
entity rather than the indicated range.
Resources don't have "byte ranges". Entities are immutable.
They don't change. Since they don't change, it doesn't make
sense to lock one or even lock part of one.
That's why locking byte ranges doesn't make sense, even
though you might think of having one resource which is
a particular byte range of another resource and locking
_that_.
(Yaron, your example is broken because "#" is not a valid
character in URLs.)