Anarki has a very similar thing, lib/dynvar.arc, authored by yours truly. It defines 'let* and 'with* and 'withs* (by analogy with the corresponding lexically-binding forms) instead of just 'dynamic, and 'dynvar instead of 'declare-dynamic, although the semantics differ a little - my forms can be used with any variable, and essentially amount to setting a given place within the dynamic extent of a certain region of code and resetting it afterwards, hence the threadsafety issues; and 'dynvar sets a variable to a thread-local cell. So it separates the issue of threadsafety from that of dynamic scope, which may or may not be handy.
There is a small bug in the code as written - it uses 'protect instead of scheme's 'dynamic-wind, so a multiply-resumed continuation could break it.
You may be interested in my "autocall" patch, that I'm renaming to "defvar" and will be writing some documentation for soon. It extends the Arc compiler to allow you to provide your own implementation for a global variable, so that you can type "a" instead of "(a)".
Sounds vaguely similar to symbol macros, which are a more general facility in which you can make a given symbol expand to arbitrary code (rather than just the invocation of a given symbol). I'd be more interested in seeing a hack to implement those in arc; you can do some interesting things with them
In this case, I honestly don't find that writing the extra parens is much of a bother to me (and I have used dynvars quite a bit in one of my projects) - it actually helps remind me "oh hey, this is a dynamic variable". It's like an enforced naming convention; "(foo)" is just as succinct as 'foo, really.
Edit: dammit, that's supposed to be 'foo surrounded by stars - the CL dynamic variable naming convention. Unfortunately it's misinterpreted as italics. Is there some way around this?
pg's convention in the arc code is to just have one star after the name, instead of one on either side. Less typing, and it doesn't conflict with italics ;)