As part of
CASSANDRA-6716 & in anticipation of CASSANDRA-10124, a distinction was introduced between secondary indexes which target a fixed set of 1 or more columns in the base data, and those which are agnostic to the structure of the underlying rows. This distinction is manifested in IndexMetadata.targetType and system_schema.indexes, in the target_type column. It could be argued that this distinction complicates the codebase without providing any tangible benefit, given that the target type is not actually used anywhere.
It's only the impact on system_schema.indexes that makes puts this on the critical path for 3.0, any code changes are just implementation details.