There is one thing tar and cp -a do differently, which, depending on what you do could be either a feature or a misfeature. tar tries to restore files according to _literal_ names of the owner (if they exist; and they do by default). This can be overridden with the --numeric-owner flag. E.g. if you forget to specify this flag and untar a backup of a virtual container from the host, you'll end up with a mess of file ownerships. Was bitten by this once...