Interesting to know that sparse columns aren't compressible. Thanks for the question.
My first thought was "every datatype"? Wow. Does that include every variation of datatype like char(1)...char(8000) . I realise blobs and the like are stored off row and can be on the file system so aren't a complication with compression, in fact aren't compressed, but surely having every other datatype would push your row over the 8000k limit and compression would fail for that reason. In the BOL notes it specifies 8060 because there's overhead for compression, which interestingly uses the same packing as a varbinary, which is now deprecated because row compression achieves the same outcome. Interesting the weird things you learn in QOTD, so thanks.