A pair of modifiers, the InsetBySmoothingGroup mcg modifier will inset mesh polygon groups by their smoothing groups, which helps to keep flat surfaces flat smoothed when chamfered instead of the usual mess. Keep in mind that for it to work, the smoothing groups should not be shared, i.e. no polygons that have both smoothing group 1, 2 etc. set. Note that the smoothing group edge borders are split afterwards, if you don't want that, you need to apply a Vertex Weld modifier.