Get the current range values from a QueryAlterableInterface
Luckily (or thankfully) the Reference module adds some rather useful information as meta data to the query in question. Making it easy to spot in terms of its id (although you have to watch out that the id is prefixed with a whitespace character). This is the same id for all similarly made queries. It also records the $options array, which means we have a reference to the ['limit'] value without going through the $query object.

I've set the following to work for any field, but have left reference to the $field in use just in case it is useful for others. For my purposes 300 rows is a suitable default to have, rather than just accepting an infinite number or records.

Whilst this doesn't access the limit/range value from the query itself, it does solve the problem in quite a general way.

/**
 * Implements hook_query_alter().
 */
function HOOK_query_alter(QueryAlterableInterface $query) {
  /// trim due to typo in references module (took me a while to spot this)
  $id = trim((string) $query-&gt;getMetaData('id'));
  if ( $id === '_node_reference_potential_references_standard' ) {
    $field = $query-&gt;getMetaData('field');
    $options = $query-&gt;getMetaData('options');
    if ( !empty($options) &amp;&amp; (empty($options['limit']) || !$options['limit']) ) {
      drupal_set_message('Modifying Node References query to ' . 
        'protect against too many values (limited to 300 values)');
      $query-&gt;range(0, 300);
    }
  }
}