IPFS doesn't currently. But there are some in the community working on exactly this using Blake3 and BAO.
However with local ipfs, bitswap doesn't support range requests, so you're at least downloading the enclosing blocks which could be 2 MiB for 1 KiB requested data, or 2000X more data than you need.