Apparently, under certain circumstances one cannot typecheck a tree twice, i.e.: 1) typecheck a tree, 2) reset all attrs, 3) typecheck the tree again. This is an umbrella issue that links to its particular cases submitted as separate issues. Some discussion about the matter at hand can be found here: http://groups.google.com/group/scala-internals/browse_thread/thread/29972d91a95e5b6d.
In 2.10 this issue won't be just theoretical. With the advent of reification and reflective compilation, it's crucial to have a possibility to take trees from the middle of the compilation pipeline, dehydrate them and store them for the future use.