Jeder
DLL eine eigene Liste zu geben würde den Aufwand produzieren, dass wieder die
DLL Listen gelockt und verwaltet werden müssten.
Was ist daran mehr Aufwand? Aktuell lockst du doch auch bei jedem Zugriff eine Liste.
Man kann es auch mal ganz extrem sehen (was auch möglich wäre): Es gibt 100 Nebenthreads die fast gleichzeitig schreiben wollen. Da wäre der Hauptthread lange am warten, bis er wieder dran kommt (in Versuch nachgewiesen!)
In dem Fall wäre dann die Thread-Priorität eigentlich schon die richtige Stellschraube.
Edit: Falls es nicht klar war, jede Liste hätte natürlich auch ihr eigenes Lock. Sonst wäre die Sache witzlos.