`align` und ähnliche Umgebungen sind ja Tabellen mit ihrer Zellenstruktur recht ähnlich, da sie alle auf der gleichen zugrundeliegenden TeX-Idee aufbauen und intern sogenannte Zellen-Templates verwenden. Um aus solchen Templates für eine Zelle auszubrechen, stellt TeX `\omit{}` `\omit` bereit. Will man komplett aus der Ausrichtungsstruktur ausbrechen, dann verwendet mal TeX's `\noalign{}`.
Hier folgt deshalb eine Idee, die ich [von Enrico Gregorio geklaut habe][1], die dieses `\omit` verwendet (womit das Tabellentemplate für die aktuelle Zelle nicht verwendet wird) und damit die Verwendung von `\hfill` ermöglicht.
Das verwendete `\ifmeasuring@` stammt von `amsmath`. Der Inhalt von `amsmath`'s Ausrichtungsumgebungen wird zweimal gesetzt: einmal, um den Inhalt auszumessen, das zweite mal, wie es später aussieht. `\ifmeasuring@` testet, ob gerade die Mess-Phase stattfindet.
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\specialcell}[1]{\ifmeasuring@#1\else\omit$\displaystyle#1$\ignorespaces\fi}
\makeatother
\usepackage{showframe}% Seitendimensionen
\begin{document}
\begin{align*}
(a + b + c) &= (a + b + c + d + e + f + g + h + i) \\
& \specialcell{\hfill\text{(foo)}} \\
\noalign{\hfill(xxx)}
\end{align*}
\begin{align*}
(a + b + c + d + e + f + g + h + i) &= (a + b + c) \\
\specialcell{\text{(foo)}\hfill} \\
\specialcell{\hfill\text{(foo)}\hfill} \\
\noalign{\hfill(xxx)}
\end{align*}
\end{document}
![alt text][2]
[1]: http://tex.stackexchange.com/a/83522/5049
[2]: http://texwelt.de/wissen/upfiles/hfill-mathe.png