"This would allow robomartin to have his "notation as a tool for thought", while still having another syntax that's easier to understand, for those that want it."
For the past 6 months I've been going to a hackerspace in Oakland every monday evening, and trying to learn how to teach programming to non-programmers. So I've been thinking about this a lot.
Yes, I was phrasing it poorly. I meant that since just reusing the binding sometimes doesn't work, the idiom has evolved to always rebind. Even for non-nil lists, and even for destructive operations that are safe to just operate on like nconc. But I'm not a huge expert on what the idioms are :)
(1) Yes this has occurred to me as well. I think it's pretty much just convenience. Though languages like Kernel and even Common Lisp (with constant need to quote or function-quote) reduce that inconvenience anyway.
Even if you choose to quote names in definers, you still need some irregularity in evaluation policies to build short-circuiting or/and.
(2) Arc is built on racket, and strings in racket (and other schemes?) are interned and so fast to compare just by their address. Lisp choose not to intern strings.
I think it's 'meta hackable' in that you can choose what 'hackable' means :) Some people may choose "last release 4 years ago" to mean it's dead. I choose to think 'stable release' doesn't apply to arc. Even PG's versions have the disclaimer "future releases can break anything", which doesn't seem very stable. So I and a few others choose to "break anything" of our own accord :)
'Hackable' isn't black or white, but a question of priorities. SBCL and Racket care about keeping the implementation hackable, but have other higher priorities: it should provide a stable interface that doesn't break user code, it should provide a compiler, it should run programs really fast, it should help teams of people work on large projects, etc. With arc, hackability is the #1 priority. It's a pretty good platform for experimenting with language features, or at least a pretty good forum for discussing language features you build on any platform. But it's not the ideal place if you just want features and don't care how they're built.