I have a lot of reasons why this should be like this.
First of all our solution for extraction at this time is at the best temporary - this needs to be re-factored:
Nowadays there are many archive formats and they are so different that not even in python there is not a uniform way to extract archive. Our solution is heavily depended on system programs such as tar, bz and it is not working quiet well at this time.
So I think there should be new plugin phase - Extraction(self, archive, output_dir) that should extract archive to directory, if archive type matches. It will be extensible so we don't have to worry about implementing a lot of extraction algorithm.