The choice of cells is not coincidental, it is because that is our best way to tap into spatial variability. Of course, this may not be enough, we might want to associate a particular evaluation with any grid entity, it could depend on particular spatial coordinates and more. However, we have to tailor the interfaces to what we actually need, we cannot add all possible variations. As @bska points out, passing cells gives the receiving code the possibility to use the information in any way it requires, for example by mapping to region numbers (but this is different for each receiving code).

The choice that must be made is: add this logic to either
 - PvtInterface (the low level), or add it to
 - BlackoilPropsFromDeck/BlackoilPvtProperties, BlackoilPropsAdFromDeck (the high level)
Since you have already put the ability for the PvtInterface classes to contain multiple tables, I think that is the correct place for it. Otherwise, I would like each of them to take no region or cell argument, and collect them in the higher-level objects. But I strongly prefer the first solution.