Keine echte Antwort aber schlicht zu lang für einen Kommentar:
Ein Paket, LaTeX-Paket, das Wörter im gesamten Text eines Dokuments erkennt und durch Befehle ersetzen kann, gibt es nicht. Genau genommen arbeitet TeX gar nicht mit Wörtern, sondern mit Folgen von Boxen. In einer Box können dann erneut Boxen oder Zeichen sein. Selbst der Trennalgorithmus arbeitet nicht mit Wörtern, sondern mit Buchstabenkombinationen und Gewichten für deren Trennbarkeit. Darüber hinaus bietet das klassische TeX (also auch `latex`, `pdflatex` und selbst `xelatex`) keine guten Eingriffsmöglichkeiten für derartige Aufgaben. Es ist eher befehlsorientiert. Um Wörter zu erkennen und dann speziell zu behandeln, müsste man entweder die Bestandteile der Wörter *aktiv* (also zu einzelnen Befehlen) machen oder die Wortzwischenräume. Das würde allerdings vielfältige Probleme aufwerfen, da die entsprechenden Zeichen dann eben immer aktiv wären. Beispielsweise können Befehle wie `\documentclass` nur aus Buchstaben und nicht aus einer Reihe von aktiven Zeichen gebildet werden. Ich schätze ein entsprechendes Unterfangen daher als illusorisch ein.
Soweit ich weiß, kennt auch LuaTeX keine Wörter. Allerdings bietet LuaTeX diverse Angriffspunkte, um die erzeugten *Node*-Listen zu analysieren und zu manipulieren. So bietet beispielsweise das Paket [`selnolig`](http://ctan.org/pkg/selnolig) die Möglichkeit bei einem Dokument mit `lualatex` direkt beim Übersetzungsvorgang unerwünschte Ligaturen aufzuspüren und aufzubrechen. Dazu muss das Paket nicht nur Ligaturen aufspüren, sondern auch deren Umfeld erkennen, um eine korrekte Entscheidung zu treffen. Für das Aufspüren von Abkürzungen könnte man auf ähnliche Weise vorgehen, wobei das genannte Paket derzeit keine kompletten Wörter sondern Wortbestandteile erkennt und ersetzt. Das alleinige Vorhandensein des Pakets ist also noch keine Lösung sondern ein Hoffnungsschimmer.
Irgendwo gab es auch einmal einen Artikel, der veranschaulichte, wie man in LuaTeX Wörter ersetzen kann. Das wäre dann eher ein Ansatzpunkt. Leider kann ich den Artikel gerade nicht finden, aber vielleicht erinnert sich ja jemand anderer daran.
Nachdem ich nun also erklärt habe, warum man bisher `\gls{foo}` o. ä. eingeben muss, statt dass `foo` automatisch entsprechend behandelt wird, sei zum Schluss darauf hingewiesen, wie sich das ändern könnte. Zwar darf man auch an die Verwendung von Open-Source durchaus mit Wünschen und Erwartungen herangehen. Tatsächlich erfüllt werden aber nur die Wünsche und Erwartungen, in die jemand investiert hat. Das kann ein Entwickler sein, der irgendwann sein Know-How und seine Arbeitskraft investiert hat. Das kann aber auch ein Anwender sein, der irgendwann in die Suche nach einem Entwickler und ggf. auch in die Finanzierung einer Entwicklung investiert hat. Ansonsten bleibt nur, mit viel Geduld darauf zu warten, dass irgendwann ein freiwilliger Entwickler die Aufgabe entdeckt, sie als interessant einschätzt, Lust verspürt, sie anzugehen, und auch die dafür erforderliche Zeit aufbringen kann. Ich traue mir jedoch keine Abschätzung zu, wann das der Fall sein wird.