It depends heavily on what it costs by means of time to retrieve 2 disk sectors vs retrieving one sector and decompressing into two data sectors.
On HDD biggest delay is related to disk revolution, thus defragmenting disk (or single file) will speed sequential read greatly.
For SSD there is no seek delay, so defragmenting has smaller effect (but still make pointers to file parts more compact in MFT, thus needing one extra read for fragment vs per whole file)
Example:
I run OpenBSD off the CF card and kernel is 20MB, which reads in 10s
I compress it and it becomes like 6MB, and reads in 3s, +1s for decompression.
In this embedded case I save 5s off the boot sequence, so the read-only files can be compressed for good effect. (e.g PXE bootable installer would be a good candidate)
Bigger problem turns up when you compress system databases like windows update or MS-SQL, where big parts of file gets recompressed (i.e read - decompress - modify - recompress - write) leading to ugly speed and enormous fragmentation.
At the price of modern disks i'd suggest to buy quicker disk for speed locally, and limit compression to strictly read-only scenarios like netboot or install DVDs