This particular project chose to use GWT. While GWT provides a lot of good abstractions to build such application, I find the requirements for the project is disturbing: want to be like desktop, but looks like a web-app, but can do bookmarking, etc etc.
It suffers a lot of issues from:
1) Having to re-implement how the history works
2) Having data freshness issue vs not re-fetching every visit
3) Huge DOM structure within the single page
It's just too crazy. Luckily GWT ease the pain a little bit, but I wished we wouldn't go that far or at least cap the requirements with some limitations.