Use case - we had ~200 org. units in midpoint, but around 12k shadows in source system. Most of the shadows weren't imported because of sync condition. After few changes in connector resource did show only 200 objects, therefore reconciliation had to work through 200 shadows, recompute 200 org units and delete ~11,8k shadows. We configured 4 threads for reconciliation. *After working through 200 linked shadows (and org. units) all four threads were closed and reconciliation continued in one thread for multiple hours trying to delete 11,8k shadows. No multithreading there.
I guessd dispatcher always found out through consitency that shadow should be deleted and did the work by himself. Maybe we can improve this somehow so that whole reconciliation can run multithreaded.