I was able to cause the "correct" message to be displayed by adding a couple more changes around the section you'd identified earlier:
Code:
 
        case "Table Rates":
           $cost = $this->_get_error_cost_tables($dest_country) ;
            if ($cost[0] == 0) {
              $this->enabled = false;
              return  ;   //  All has failed - Disable module 
            }
        $methods[] = array( 'id' => " ",  'title' => "(based on ". $cost[1].")", 'cost' => $cost[0], 'Display' => '' ) ;
 break;     
     
    default:
           $cost = $this->_get_error_cost($dest_country) ;
            if ($cost[0] == 0) {
              $this->enabled = false;
              return  ;   //  All has failed - Disable module X
            }