After reading the HLS documentation again, I finally noticed this option:
hls_list_size
size
Set the maximum number of playlist entries. If set to 0 the list file will contain all the segments. Default value is 5.
Sure enough, in my initial question, there are 5 EXT-X-BYTERANGE
entries from the end of the video, consistent with the stated default value. Setting hls_list_size
to 0
as indicated does in fact ensure the video starts at the beginning and includes all the expected byte ranges.