No está mal.
En Free Pascal existen dos unidades (libtar y zstream) con clases cuya combinación permiten manejar archivos .tar, .gz y .tar.gz. La diferencia está en que, en estos casos, son derivadas de la clase TStream, por lo que no son simples contenedores y no tienen que ser, necesariamente, ficheros de disco (por ejemplo, puede usarse para acceso a redes). Claro que, por lo poco que sé, con el formato PKZIP no debe ser fácil usar TStream.
Me pregunto si estas unidades (libtar y zstream) pueden usarse en Delphi.