Most clients will read-ahead blocks after a requested piece. If a peer is sufficiently fast, we should opt to download the whole piece from a single peer so that only that peer caches the piece. Otherwise if we're requesting blocks from multiple peers, each of those will pull the piece into their read caches, which would be a waste if each of them could pull different pieces into their cache, speeding up the download.
Most clients will read-ahead blocks after a requested piece. If a peer is sufficiently fast, we should opt to download the whole piece from a single peer so that only that peer caches the piece. Otherwise if we're requesting blocks from multiple peers, each of those will pull the piece into their read caches, which would be a waste if each of them could pull different pieces into their cache, speeding up the download.