Callback-Funktionen/Methoden sind
IMHO immer dann nützlich, wenn
a) gegenseitige Abhängigkeiten in allgemeinen APIs aufgelöst werden müssen
(DoSomething muss nichts über das benutzende Programm wissen)
b) der Fortschritt beeinflusst werden kann
(insbesondere bei Aufzählungen)
c) man Entwickler mit unnötiger Abstraktion ärgern will