If I understand this correctly, `(,foo ...) embeds the foo function into the s-expr returned by the macro, IOW the car of the s-expr is the function.
While I find this an interesting approach, one problem I see is that this only works as long as Arc is an interpreter. Embedding foo into the s-expr mixes up runtime values (the function foo) and expand-time values (the s-expr).
In a compiler, you would have one runtime in which foo exists, and another runtime (the expand-time, at a higher "meta level") in which the s-expr exists, and the two runtimes can never meet -- they exist on different levels of the reflective tower.
(I am not entirely sure of this, and in any case it does not apply to Lexicons.)
I wonder whether web apps need GC... after all, you're writing stateless servers (oops, I'm on the Arc forum, well, nevermind ;P)
For a stateless server, you could just go on accumulating memory for a request from a per-handler pool, and once the request is served, you throw it all away (i.e. you re-set the pool-counter to zero.)
Why would GC be unnecessary for stateless servers? Something needs to free memory once the response is committed. Either the interpreter, the server, or your webapp. I prefer the interpreter - that's why I'm not using C.
I'm not sure what you have in mind with graphics app, but I think a wiki whose pages could contain some kind of simple, "object-oriented" vector graphics (e.g. using a small Flash app) would be cool.