I unfortunately don't think you'll find any "official statement" (or maybe in documentation for older versions, but I cannot find any in the current documentation).
- gwt-dev contains the compiler and the DevMode; i.e. the dev tools.
It's only needed at compile-time, and shouldn't be needed by your code, unless you're coding generators or linkers (that somehow "plug" into the compiler and devmode, so their APIs are defined in gwt-dev) - gwt-user contains the "user library", i.e. what you'll use in your code that will either be compiled to JS or run on the server. gwt-user has an implicit dependency on gwt-dev, as it contains generators and linkers.
It also contains a few tools (webAppCreator, i18nCreator, etc.), most of which a deprecated (webAppCreator, i18nCreator, etc.), and the JUnit support (GWTTestCase et al.)
This is what you'll add as to your project as a dependency (compile-time only though). gwt-user bundles a few dependencies (javax.servlet, “Flute” the CSS parser from the W3C) so it's not to be deployed. - gwt-servlet is a subset of gwt-user (well, there are also a few classes from gwt-dev) containing code to be run on the server (RemoteServiceServlet, etc.)
The line between gwt-dev and gwt-user is a bit blurry though, and a few utility classes from gwt-dev are used in gwt-servlet too. This is all historical. If GWT were to be repackaged today, classes would probably be split differently among JARs.
Finally, unless you intend to contribute to GWT (or go into deep debug sessions of GWT itself), all you have to know is that your project should have gwt-user.jar as a dependency; possibly gwt-dev.jar too; and you'll only ever deploy gwt-servlet.jar. gwt-dev is used for the devmode or to compile your code (or as a dependency if you have a generator or linker in your code).
Now, in GWT 2.4, there are a few new JARs:
- requestfactory-client: client-side code for RequestFactory (includes RequestFactorySource), to be used in a VM (unit tests, stress-tests, or an Android or desktop app)
- requestfactory-server: server-side code for RequestFactory (includes RequestFactoryServlet). If you only use RF on the server (no GWT-RPC, no SafeHtml, etc.) then you can deploy this JAR instead of gwt-servlet.jar.
- requestfactory-apt: annotation processor, used at compile-time only. See http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation
There's a large overlap between client and server, as "shared" code is in both JARs.
Additionally, all three (client, server and apt) are bundled within gwt-user.