At least .gz, tar.gz and .tgz should be supported as there are some alternative apps to extraction in the tree.
We could use the pydecomp lib I created for catalyst. It is very flexible in the binaries it can run for both compression and decompression. It can be easily extended and is pretty much transparent to the consumer app. It just needs to instantiate a decompression instance and let it do it's thing. It does still need some more work to be fully fleshed out with configurable options (plus some additional BSD tar support). But it is functional and supports many different forms of compression and decompression including squashfs. It also includes an rsync module for local rsyncs. Zac you may recall my mentioning it before. And the possibility of portage/emerge making use of it. Keeping the current code for backup of course.
I feel like we've basically done this with BINPKG_COMPRESS_FLAGS_<COMPRESSOR>. I'm not sure we want to add special variables in general for each compressor.