Why are long block lengths commonly assumed/used in channel coding proofs?
One reason is that this allows a small fixed overhead per block.  With a sufficiently large block, the effect of this becomes minimal (it's amortized out over the length of the block).