Angenommen, man verschreibt sich, oder die Texte (die ja gleichzeitig die Indizes sind) ändern sich.
Dann darfst du alles anpassen, weil er die Übersetzungen nicht findet.

Angenommen der Default-Text würde "There's an error" heißen. Dann rufst du gettext("There's an error"); auf.
Nun kommt einer auf die Idee und ändert den Text in "Sorry, but there is an error" und schwupps könnte deine Anwendung den Text nicht mehr übersetzen, da nun nach dem falschen Text gesucht wird.

Man kann jetzt anfangen, anstatt Texte nun eindeutige und prägnante Indizes (z.B. ERROR) zu nehmen, aber das ist ein Workaround, der dieses bescheuerte Prinzip umgeht. Aber hier hat man das Problem, dass er als Default-Wert nun die Indizes verwendet. Wenn du also nun nicht die entsprechende Sprachdatei hast, würde anstatt "Sorry, but there is an error" nun "ERROR" in deiner Anwendung stehen.