Why Rabin fingerprints assumes data is prefixed with a "1" bit?
I think that it was to make sure that the leading zeroes in the data to hash are taken into account during the hash. Without the '1' prefix value, those leading zeroes would make the fingerprint stay to zero.

Without the '1' prefix, the following 2 list of bytes would have the same fingerprint:

[42, 5, 3]

[0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 5, 3]