Most important is that the decompression algorithm is stored in each block so that you are able to improve the algorithm without breaking compatibility. Also it allows to always select the best algorithm for the input data and tweak it or even none for random data.