Drush 5.9 - unable to untar
By default the command drush archive-restore creates a unique temporary folder under /tmp (*/tmp/drush_tmp_1394487346_531e303223...*) where it will extract the archived tarball content, and later will move the $doc_root into the $destination - with the option overwrite.

I guess your /tmp folder resides on a separate partition, ~4GB in size; restoring a 3GB archive worked well, but it fails for 5BG. It looks like drush archive-restore works only when the system's temp folder is large enough to accommodate the extracted tarball.

PS. drush archive-restore is defined in archive.drush.inc : 

function "drush_archive_restore" (drush_tarball_extract($file, $tmp)), where $tmp = drush_tempdir();


Funtion drush_tempdir() is defined in filesystem.inc - creates a unique temporary directory  and returns its path. drush_tempdir() uses drush_find_tmp() which more likely returns /tmp