Lo que ocurre es normal, se debe a que los indices de fox son arboles B+, donde el indice está por un lado (archivos CDX, IDX) y los datos en un archivo plano (binario directo, de registros de longitud fija).
Un arbol B+, esta compuesto por nodos (registros) que contienen claves y punteros, las claves, son los valores que corresponden a algún valor en los datos, y los punteros, apuntan a otros nodos del arbol B+ o a los registros en el archivo plano.
Los nodos son de un tamaño fijo (no recuerdo si 512 o 1024 bytes) donde una buena porción se utiliza para almacenar repeticiones de claves y punteros.
En un nodo entran EPK / (LK+4) = Claves como maximo, donde EPK es espacio para claves (un 90+% del nodo), y LK es longitud de clave (8 bytes fijos si son claves numéricas).
Las claves dentro de cada nodo, están ordenadas por valor.
Cuando se van agregando registros (y claves) el nodo se va llenando, cuando se termina de llenar, una nueva clave produce un fraccionamiento del nodo, convirtiéndose en tres nodos, donde en uno queda dos claves (desde/hasta) y puntero a los otros dos nodos, en estos dos últimos se almacenan la mitad de las claves que estaban en el nodo de origen.
No se (creo que no) que el nodo que se fracciona se reutilice.
De esa manera, el árbol se va expandiendo a medida que se agregan claves, en general, todo nodo está lleno hasta la mitad, como mínimo, y en promedio, en un 75%.
Cuando se borran claves, los nodos se unifican solo si dos nodos adyacentes (en valores de claves) están usados por la mitad (es raro, pero puede darse).
Como pueden ver, este proceso hace que se vayan creando muchos nodos, y posiblemente haya muchos nodos descartados (los que se llenaron y se "split"earon).
Si la carga de nuevas claves es aleatoria (que no implica desorden), evidentemente la cantidad de nodos cargados a la mitad es enorme. Y de ahi que los indices crezcan notoriamente.
Generalmente, las claves primarias, que se generan aproximadamente en forma consecutiva, no están "desparramadas", pero las claves de los indices auxiliares, si se cargan en forma desordenada y son los que mas desperdicio en nodos tienen.
Por eso, es necesario periódicamente re-indexar todos los indices, o puede resultar mejor, borrarlos todos y recrearlos (puede llegar a ser más rápido y dejar los indices más eficientes).
Saludos: Miguel, La Pampa (RA)