Você entendeu errado como open funciona: Com seu comando open /Application/Emacs.app foo.txt você diz open para abrir dois arquivos, o Emacs e o arquivo txt, mas estas são duas operações diferentes: Primeiro, o emacs será iniciado e depois foo.txt será carregado com o programa padrão para .txt files, que aparentemente é o Emacs no seu caso.
Contanto que o Emacs seja o padrão para este tipo de arquivo, usar open foo.txt abriria o arquivo no Emacs, mas se não fosse o padrão, você teria que usar open foo.txt -a /Applications/Emacs.app (a opção -a diz abra o aplicativo a ser usado) ou talvez você possa entregá-lo como um parâmetro com a opção --args desta forma: open /Applications/Emacs.app --args foo.txt .