As you have already noticed, they all do the same thing (more or less). I decided to go ahead with django_compressor.
Also, I prefer to set expire headers or apply on-the-fly compression at the web server level. IMHO these operations should not be performed by the application itself, because sometimes it can lead to some issues, for instance setting Cache-Control or expiration headers on error pages etc. The mod_expires module is very easy to configure according to your needs. For on-the-fly compression using the DEFLATE output filter, I have used this mod_deflate configuration as is.