As recent experience shows, it's hardly possible to implement a global cache that persists between compilation runs: http://groups.google.com/group/scala-ide-user/browse_thread/thread/b1cab5588ff21f7f. Therefore I think we need to remove Context.globalCache.
Speaking of cache, it looks like Context.cache can be emulated with attachments. It'd be also interesting to see what Racket guys do in their latest paper "Macros that work together".
But for it I think we need to remove both caches. If macro writers really need that functionality, they'd better roll their own mechanisms instead of using our half-baked API.