Warum ist die Listeninitialisierung (mit geschweiften Klammern) besser als die Alternativen?

MyClass a1 {a};     // clearer and less error-prone than the other three
MyClass a2 = {a};
MyClass a3 = a;
MyClass a4(a);

Warum?

Ich konnte keine Antwort auf SO finden, also lass mich meine eigene Frage beantworten.