First and last array values are cached in NetCDFRead.read._cache_data_elements, and it currently could do this multiple times per variable.
It would be straight forward to cache these values to save going back to the dataset more often than is required.
PR to follow.