I'm not sure what the need for graphics macros would be.
...
With macros you do not edit the code after generation. Once you have written and debugged your macro that's it, it is just a black box used in compilation, and you never touch its output.
Hmm, but the question becomes how do you represent it after it is written and debugged. It isn't a matter of defining a new "graphical macro", but rather how do you represent what a macro does in a graphical way. A Lisp macro changes the very meaning of the syntax. In our graphical analogy, it seems that a macro should change the graphical syntax of the language.
If this visual lisp is coded by drawing connections between boxes like other graphical programming languages I am familiar with (e.g LabView, OpenDX, etc.) then a macro wrapping a section of the program should in general delete and create new connections and boxes. And that is the most mundane description of what can happen. For absolute versatility, it seems that within the bounds of a macro the very method of input should be allowed to change. Macros give us options in how we represent the code we want to input. A macro in a graphical Lisp should do the same, but without the limitations of characters.
For instance, maybe I define a macro that displays a canvas for me to draw on. This allows me to sketch a plot of a function I want to approximate. The macro could then take my input and expand into a block of code that represents a polynomial fit to the curve on the canvas. This seems quite similar to the way something like CL-YACC allows me to write production rules directly into the REPL when I wrap it in a DEFINE-GRAMMAR.
This is a fun thing to thing about because it seems doable, though it is in no way clear how to do it well or how far you could take it.
Anyway, just my opinion,
Zach S