To accomplish this, we've set "editable" to "false" for StructureGroupAttribute.Purpose. This prevents users from modifying StructureGroupAttribute.Purpose without stopping the system from updating it to match StructureFeature.Purpose when that field is updated.
Hope that helps!
I searched/tried a bit, without solution. For now, I will do the same: just disable "editable".