Андрей да, есть ряд вещей, которые можно было бы сделать для ускорения сканирования. Использовать больше параллельных процессов - одна из них. Скажу честно, главная причина, почему это не в приоритете - сложность (и багоёмкость) программы будет очень быстро возрастать с каждым таким ускорением, а скорость будет прирастать незначительно, лишь на десятки процентов. Ускорить в 10 раз все равно не выйдет, время всё равно будет измеряться часами, и всегда будут пользователи, кто недоволен скоростью индексации. И при всём при этом - индексация пользователем делается только один раз, после этого проблема сама собой исчезает.
Надеюсь на понимание.