Could you not call the same method as is called through the GUI? I have seen other methods that are not GUI commands be called this way and I'm not familiar with python.
Not AFAIK, or perhaps I haven't delved into it enough. I'm aware of certain GUI methods to be called through the console, QR codes etc. The creation of the transaction itself calls the transaction module, while the parsing of the output is done with paytoedit.
As for requiring an address, wouldn't OP_RETURN require one as well? I'll admit I've never used it (see below,) but I was under the impression that it required a fee, and some bitcoin to burn.
Outputs are scripts, addresses are scripts as well.
They're not treated differently in terms of the fees required, it is always dependent on the size of the transaction. OP_Return is a special kind of output that allows for 0 value output.