grow+shrink merges together areas that would be too close and generate spacing errors, or in the case of contacts would create individual contacts instead of one large contact area. shrink+grow gets rid of areas that are too small to place a contact cut. My recollection is that this happened on cells where there were contact cuts that were not exactly in a row, but were slightly offset. Then the grow+shrink operation created a bridge between them that was too small for a cut to be placed. So the shrink+grow gets rid of those bridges.