I remember my first hard drive. It had 200MB of storage, and it was very expensive. The early '90s were something. But we are in the 21st century now, and we are talking about a 20-40% compression savings on files that are at best 4MB in size, on $99 hard drives with 2TB worth of storage space.
And there are only ~2,000 unique SNES games. Doing the math, we see that it costs, at best, ten cents to store a complete SNES image set. So why do we still use compression? Is it bandwidth? The days of 28K dial-up are long past, but even then, it is not so unreasonable to distribute a collection of games in an archive, and require extraction first. As you would for literally any other file type in the world (images, movies, songs, etc.)
But why not support compression anyway? Well, many reasons. First, writing decompression code is hard. Very hard. We pretty much have to rely on third-party libraries, and these libraries are often larger than our entire emulators. zlib is something like 200-300KB of source code, which is about four times the size of my entire Game Boy emulator. And that's just for ZIP alone. People also want 7-zip, RAR, JMA, Gzip, etc support as well.
And then there are the licenses. Each of these decompression libraries impose restrictions on us emulator authors in order to use them. If I were to add RAR support, no Linux distribution would touch my emulator, because of their ridiculous licensing policies. Using JMA without a license exception would require an emulator author to release all of their source code, and allow others to sell their work for money. Not so great for non-commercial projects.
All of this code adds up, significantly slowing down compilation times. It may not seem like much, an extra minute or two every compile. But consider that I have compiled bsnes at least 20,000+ times now, and that really starts to add up after a while. Time is valuable.
All of that code also bloats executables. Programs take longer to start up, programs are larger as a result of all of these DLLs, and so on. And then there are the shared libraries. Every Linux distro expects you to use their shared libraries or they will throw a fit. But Windows doesn't have shared decompression libraries, making everything that much more complicated.
And then trying to load these images. Having to decompress a game first adds to the time it takes to start playing. A good second or so for each game you load, wasted, on file decompression. Get into 7-zip solid archives and things can get really crazy. The popular "Super Mario World.7z" bundle has nearly one thousand images inside of it. Loading a single game from this archive takes a good 5-15 seconds, depending on CPU power, and a monstrous 1GB of RAM to do so. Solid archives require you to decompress all data before it, so you pretty much have to extract and cache 1,000 games in memory, just to play one. Ridiculous.
I also mentioned the issue of false-positive matches based on generic file extensions, and trying to associate images directly to SNES emulators. This becomes two orders of magnitude worse when using popular archive extensions.
Perhaps worst of all is just how meaningless this all is. Even if, for some reason, you have a legitimate need for compression ... modern operating systems have compression support built-in! Take Windows and NTFS for instance. Simply right-click on a folder, choose properties, choose advanced, and tick "compress folder and subfolders to save space." and hit okay. The operating system will compress all of the data for you, and decompress it completely transparently to individual programs and users.
Doesn't that sound more rational? Have the OS integrate a common operation, rather than having every last software program support every last popular compression format of the month.