The first use of wp_reset_postdata()
is not redundant its unnecessary.
Per the codex
Use this function to restore the global $post variable of the main
query loop after a secondary query loop using new WP_Query. It
restores the $post variable to the current post in the main query.
So only use it after your secondary query to reset things back for your main query.
NOTE: a better location to put it would be within the if instead of after the else
if ( $arg ) :
// loop
wp_reset_postdata();
else :
// no results
endif;
More infor on wp_reset_postdata()