What Eric said. I haven't nailed down all the error reporting yet (although it's closer now), but the idea is that we really can avoid reporting errors on unreachable types. And not reaching code means fewer deserialized types, which is better for memory and takes less time. But there's an even bigger one...
When code flow reaches GWT.create() calls, we have to run rebinds, and therefore generators, and reach even more code. So there's a spiraling effect. JDT used to limit the total reach by only pulling in the types necessarily to finish a compilation. If we didn't do SOME kind of prune off, we might end up being SLOWER than before. Since we have to do some prune off then, it makes sense to do a good job with it. -- http://groups.google.com/group/Google-Web-Toolkit-Contributors