You can totally do that, specifically because .gwt.xml files subset the classpath.
Recap:
1. GWT reads from the classpath, it doesn't care where the files "physically" are: this means if your classpath is src/main/java:target/classes:/path/to/gwt-user.jar:/path/to/gwt-dev.jar, you can have target/classes/myapp/MyApp.gwt.xml (in a typical Maven setup, copied there from src/main/resources/myapp/MyAp.gwt.xml) that references src/main/java/myapp/MyApp.java as simply "myapp.MyApp": GWT doesn't care whether that myapp/MyApp.java actually leaves in src/main/java, target/classes, some JAR, etc.
2. gwt.xml files subset the classpath for GWT: by default, a gwt.xml has an implicit <source path="client"/>, so putting a .gwt.xml file in a package and referencing it from another .gwt.xml (or passing it as the input to GWT) will tell GWT to only consider classes (in the form of *.java resources) in the "client" subpackage. A typical setup would put non-GWT classes in a "server" subpackage, and GWT generators into a "rebind" subpackage; GWT will then ignore them because they're not in the "source path" (which only includes the "client" subpackage here).
3. gwt.xml files can also "superset" the classpath by "rerooting" some subpackages, through super-source. If a .gwt.xml contains <super-source path="super"/>, the GWT will behave as if that "super" subpackage was added to the classpath (note that again this is about packages, whereas the classpath is defined in terms of folders and jar files; what that means is that if myapp/MyApp.gwt.xml from the above example had <super-source path="super"/>, then GWT would behave as if the classpath were src/main/java/myapp/super:target/classes/myapp/super:src/main/java:target/classes:<what would be equivalent to selecting myapp/super inside the gwt-user.jar>:/path/to/gwt-user.jar:<what would be equivalent to selecting myapp/super inside the gwt-dev.jar>:/path/to/gwt-dev.jar:<what would be equivalent to selecting the myapp/super inside the gwt-dev.jar> – well actually, the precedence rules are a bit different IIRC, but you get the idea)
4. the <source> and <super-source> (and <public> by the way) can further subset things by using includes="", excludes="" and skip="" attributes, or <include>, <exclude> and <skip> child elements (the difference between exclude and skip: skip means "not in this module, but another module –generally in the same package– could include it", whereas exclude means "never include this, even if another module –generally in the same package– would include it"; of course it only works that way if both modules are <inherited/>)
Have a look inside gwt-user.jar to understand all that: in one JAR there's client-side code, server-side code, shared client/server code, super-source code; and you can find further subsetting (using include/exclude/skip) in some .gwt.xml files in com/google/gwt/user.