Paradigm Shift
When you start to develop in GWT as a traditional web application developper you have to think differently.
In a traditional web application, the Backing Beans are available when you define a new JSP view.
Page view concept does not really exist in a full RIA approach: you may use GWT Composite class as view instead.
In a GWT application you have to access to the server side data by using asynchronous callbacks.
Design Guidelines
Here is some design guidelines we've imposed ourselves during the development:
MVC
Model View Controller allows decoupling the code.
You can find the model part, the POJO, able to notify events to views
You have the views for the display and we use GWT Composite for each views
The Controller part makes the relationship between models and views.
Component reusability
GWT Composite classes are reusable components.
They can aggregate widget but also other Composite.
POJO, POJO, POJO...
Think POJO as much as possible, stay above the data level, modelize your XML or JSON raw data with POJOs.
Why? With GWT you code in pure JAVA so use JAVA as much as possible.