We are building small (~2K Java classes) to medium (~6K) enterprise systems on regular basis using GWT since version 1.3 was out. I understand that there is a different set of problems to solve in public site having thousand clicks per second, but I will try to tell about our biggest problems in GWT 1.x and how GWT 2.0 approaches that.
Browser Memory Leaks IE6 leaks with GWT are tremendous, IE7 leaks can be compensated with periodic page refreshes, IE8 promises some stability in this area, but not yet widely accepted in enterprise. And yes, even valid GWT code without native JS calls leaks memory in certain cases. Especially when UI is complex and you are doing a lot of Panel.clear() calls. There are no useful tools to identify the real cause of the leak at the moment. Unless you know how to hack into browser itself.
Rendering Performance you have to write your UI code very carefully, especially when building commonly used custom widgets. Deep JavaScript, CSS and DOM knowledge is still required. There is a lot of materials in internet on this topic. You need to know how and when to get down from GWT widget level to direct DOM manipulations.
Size of Downloadable Content it was impossible prior to 2.0 to split module onto different downloadable pieces without having "hard" navigation built in the application. But that will clear JavaScript context and require window reload.
UI Developers Mind Shift Experienced UI developers just don't know Java and OOP. Experienced Java developers don't know CSS,JS,HTML and don't like building UI. UI Binder goes into right direction.
We have done migration 1.3 -> 1.5 -> 1.7 and it was always just a recompile and a couple of CSS fixes. GWT 2.0 removes a lot of deprecated code and initial approaches (project structure, GWTShell) and may be tricky to migrate quickly. But all features looks promising and its good that Google have dropped legacy code at some point. I am not sure about the stability of 2.0 though, as we have not used it yet in real projects.
Hope this helps.