We're apparently talking past each other.  What level, *specifically* (i.e., which file or group of files), are you talking about when you say that there's no `cells` argument?  Because there absolutely *is* a `cells` argument at the level of the `BlackoilPropertiesInterface`.

>
```C++
void viscosity(const int n, const int* pvtRegionIdx,
               const double* p, const double* z,
               double* mu, double* dmudp);
```

How do you propose that that interface handles end-point (or hysteresis) effects that vary from one cell to the next?

> note that the current interface nowhere requires that the 'n' quantities to be calculated correspond to cells.

Correct, but we don't have any other (current) uses for the properties.  At present we typically compute properties for all cells or all cells perforated by wells.