Oh, I see what you mean. It looks like those two properties are using the same memory under the hood leading to this overriding effect when set from Python API. If it is so I’m not sure if there’s anything we can do right now, besides accessing Blender internals in some hacky way.
I think this can be considered a bug and you can report it to Blender (https://projects.blender.org/blender/blender/issues). Then maybe it will get fixed in the next version or they also might suggest some workaround for now.
bpy.context.scene.tool_settings.snap_elements_base = {"INCREMENT"}
bpy.context.scene.tool_settings.snap_elements_individual = {"FACE_PROJECT"}
bpy.context.scene.tool_settings.snap_elements_base
{'INCREMENT'}
bpy.context.scene.tool_settings.snap_elements_individual
# {'FACE_PROJECT'}
bpy.context.scene.tool_settings.snap_elements_base
# set()