I just figured why the unmarshal() method of BondNotioanl is wrong. Have a look at SourceFactory.createUnmarshalMethods(), l994ff. At the bottom of this method, a JSourceCode instance is created that holds the method body of the unmarshal() method to be created. As a mattr of fact, this is created before class nam econflict resolution. Whilst the toString() methods of e.g. JMethod and JMethodSignature are linked to a JClass instance (whose local name we change in the strategy implementation) and thus lazily create the code, this JSource instance is created too early.
Proposal: introduce something similar to JMethodBody, that takes an arbitrary number of parameters, and that has a toString() method.