Before starting a long discussion, VTK made a change a while back to be consistent with VisIt’s way of marking ghost entities – https://blog.kitware.com/ghost-and-blanking-visibility-changes/.
This can get complex quite fast, especially when considering trying to handle multiple levels of ghost cells. Also, many filters use ghost information quite differently so a simplification for one filter wouldn’t work for another and this information would have to be passe through the pipeline (e.g. ghost level one requires simplification A while ghost level two requires simplification B, which probably just means that you could only do simplification B on the second ghost level).
I thought about going down the route of just saying what types of ghost adjancies would be requested at a level (e.g. face ghosts which are only needed for determining the exterior surface vs. edge ghosts which I can’t think of a good example off the top of my head vs. point ghosts which are needed for the point data to cell data filter) but even that’s quite a bit of work.
I’d be happy to give feedback but I fear that the conclusion will be that this is going to be too much of a change and will also break compatibility with VisIt.
Best,
Andy