Du brauchst es doch nur da einzusetzen, wo du 'ne StringList als Result zurückgibst?
also
Function GetStrings(Index: Integer): IInterfacedStringList;
Das Ganze würde ich auch nicht für die Basisklasse umsetzen.
Witzig wäre es, wenn du deine Slicing-Erweiterung als Class-Helper für TStrings erstellst,
dann hätte man diese Funktion gleich automatisch in allen TStrings-Nachfahren (wie TStringList) drin,
und das sogar auch noch bei allen Instanzen, die man nichtmal selber erstellt hat (wie z.B. .Lines von TMemo).