Hi Jens,
yeah, basically I do what you wanted to do with @RemoteService, but then I had to rearrange the dependencies (moved in a project where I couldn't depend on GWT) and so I moved to processing on the @Asynchronize annotation (which I created initially with a different name and purpose similar to your @GenerationStrategy).
And yes there is the possibility to customize the return type, for example if you want a boolean, use it as @Asynchronize(returnType = boolean.class). Plus there are some other inspiring options.
I really think that being an independent project it makes it better in terms of modularity,
but its code is Apache Licensed and I allow freedom of copying it to make a processor specific for GWT, working with @RemoteService annotation.
Also I have some ideas (see the github issues) to make it completely transparent as a dependency so that subprojects don't inherit the processor and processing is not triggered in all the hierarchy.
Please give it a try, your feedback could be helpful ;-)