The current text-based interface assumes that both the input and output are text-based, ie the user types the commands, and the output is displayed as text after the command.
The disadvantage is that graphical output cannot be rendered.
Is there a way to use the text-based input, but set the output to a notebook?
My specific usage, although there are others, is to use Emacs ( via mathematica.el ) as the input editor, and allow the notebook to be the output stream so as to show graphics, etc.
I found a technical note "How do I get Mathematica to display all my output in a separate notebook?".
However, the text-based interface fails on $nb=NotebookCreate; because there is no front-end running.