Considering how large the total blockchain is relative to average download speeds, why were the blocks never data compressed before being sent?
Why could this not be implemented on a new alt?
Because the data is already serialized in a pretty compact way and large parts of that data are hashes which are effectively random numbers as far as compressability is concerned. (Random data is not compressable.)
Also when you search for for example a transaction id in an index, it will point you to the exact location in the blockchain. Having to read a whole bunch of data around that area and decompress it before being able to access the transaction that you wanted, adds disk I/O, CPU overhead and memory consumption. That severely limits the dictionary size any compression algorithm could use, and therefore the compression ratio.
Give it a try by zipping the whole blockchain file, but remember that any usable live compression would have a lower ratio than what you would find.