Ja, ich weiss, ab Vista/Server 2008. Toll, kein Mensch verwendet Vista. Und für Server kann mans gleich ganz vergessen, da Server 2008 wohl erst in 3-4 Jahren halbwegs verbreitet sein wird.
Von daher ist das für mich gleich gut als wenn es sie garnicht gäbe. Wenn das mit einem Update/Service Pack für 2000/XP/2003 kommen würde wäre es was anderes. (Was IMO kein Problem wäre, da die nötigen Änderungen wohl minimal wären)
Und für unnötig halte ich die nicht gerade. Condition-Variablen sind deswegen toll, weil dumme/unerfahrene User damit einfach weniger Fehler machen als mit Mutex + Event (man kann z.B. nicht den Fehler machen die Mutex wegzulassen bzw. zu "vergessen" bzw. "wegzuoptimieren"). Klar kann man die Mutex immer noch falsch locken, Multithreading bleibt halt schwer, nur ein klein wenig weniger schwer
Klar kann man Condition-Variablen über Events (mit einigem Aufwand) simulieren, aber wer will das schon? Der Code der dabei rauskommt (der Code der die simulierten Condition-Variablen implementiert, nicht der der sie verwendet) ist entweder falsch oder saulangsam oder zumindest "etwas tricky".
(und ja, wenn man nur "signal_one" braucht dann ist es ganz einfach sich mit Events was selbst zu basteln, bloss ist "signal_all" auch manchmal sehr praktisch)