Hasta donde recuerdo, debes hacer el Free de cada objeto de la lista, desde luego antes que el Delete. Y antes del Free debes también liberar el StringList.
En resumen: no hay atajos

Debes liberar todo. Siempre.
Lo que te puede ahorrar un poco es usar un TObjectList en lugar de un TList para la lista de objetos miClase. El TObjectList se encarga de liberar la memoria de cada objeto. Eso sí, cada objeto aún debe liberar lo que tenga dentro, como el StringList. Eso debe hacerlo en la redefinición del destructor Destroy.
// Saludos