Essentially the purpose of IGeometrySelector is to provide the bridge between "object that can have a selection" and "the active selection on that object". The Selection is stored as a FGeometrySelection which has no reference to a type or target object, and standard target objects (eg a StaticMesh, Volume, etc) have no inherent knowledge of, or support for, low-level geometry selections. So the Selector provides these capabilities, as well as related functionality like being able to transform an active selection and emit necessary transactions/etc.