Better way to handle this would be great..
Obvious response to this is "have unit tests to check if gwt-rpc works for each class". This gives a problem in complex object graphs with multiple descendants where some are meant to be used over gwt-rpc and some aren't, etc.
Having the compiler check every RPC async interface also isn't the right answer because of inheritance and other issues.
We should really have an annotation, something like '@GWT-Entity' perhaps, that could be tagged onto a class to mark it for use in GWT-RPC and would be validated by the compiler to make sure it is usable over gwt-rpc. It can be fully optional too, so classes without @GWT-Entity could still be serialized but generate a warning to tell the user the class hasn't been marked. So then it would be fully backwards compatible.