Best Way to Query Custom Taxonomies Used on Custom Post Type

Yes there is a way using only one loop but that can be messy and have on resources for large amounts of data,

To do that you simple store all of the output as a variable and only output after you finished your loop, ex:

$tax_array = array();
$output="";
while ( have_posts()) {
    the_post();
    $output .=  '<div class="item">';
    $output .=  '<div class="item_title">'.get_the_title().'</div>';
    $output .=  '<div class="item_content">'.get_the_content().'</div>';
    $output .=  '</div>';

    $temp = wp_get_object_terms($post->ID,'tax_name');
    $tax_array = array_merge($tax_array,(array)$temp);
}

so after this single loop you have all of the items output in $output and $tax_array holds an array of all terms that you need.