La respuesta corta es no, un ClientDataSet no es seguro para subprocesos. La respuesta más complicada es que depende de cómo la use. No importa cuántos clones del ClientDataSet tenga, son seguros de usar desde múltiples hilos siempre que solo esté leyendo los datos. Esto es cierto incluso si está configurando diferentes rangos, registros actuales, filtros, etc.
Y, aunque usted no preguntó sobre esto, puede liberar cualquiera de los ClientDataSet clonados, incluso el ClientDataSet original que fue clonado, sin problemas.
Por otro lado, si alguna vez es necesario publicar un registro en cualquiera de los clones o volver a cargar los datos, debe usar un objeto de sincronización. Si los cambios son raros, la clase TMultiReadExclusiveWriteSynchronizer es excelente para usar para este fin.