I love the fact that the Closure compiler realizes "oh, that's 2" and outputs it. Personally I'll probably give them more time to build things out a bit in case they start adding some of the missing pieces like transients, but I'm more exited by this the more I read.
I don't think transiants are hugely importend in that setting. I can really see how agents are useful and the could be nicly implmenteted with webworkers.
I like them for being able to modify normally persistent structures to build them faster but still hand back a persistent one for the guarantees they allow throughout the rest of the system, threads or no.
The heavy use of |arguments| may be an issue here. arguments is an object that is only created if actually needed in most JS engines, but it looks like here every single function will need it? That might be a significant amount of additional overhead.