Excelente roman. Personalmente yo usaba búsqueda e inserción binaria en Pascal estándar con arreglos (listas estáticas), pero no con listas dinámicas (listas enlazadas). El hecho de tener en TObjectList un campo que indiza cada nodo facilita mucho las cosas.
Por otro lado, el inconveniente que tenia con la función comparadora lo solucioné con el llamado
Código:
Lista.Sort(@ComparaClientes);
en lugar de
Código:
Lista.Sort(ComparaClientes);
tomando el llamado de tu ejemplo del principio.
Saludos.