In reply to comment #2:
> Can you explain how this manifests itself? The use of Guava's Maps class (in
> fact the use of Guava at all) is an internal implementation detail of this
> bundle and is not exposed to consumers. Only the Guava classes which are
> actually required by the bundle are embedded.
The issue here is how Eclipse handles classes found in attached libraries rather than in compilation using javac or runtime usage. Eclipse analyses the Maps class and notices that one of the methods references the MadDifference interface. It tries to resolve it but fails and therefore generates a compilation error.
I suspect that compiling the bundle using ecj would generate the same error , but I did not check that.
I will attach a screenshot of what I usually get in Eclipse for this error.