The drawback here is
that your legacy bean must implement equals() ad hashCode() appropriately,
considering that an object might be compared not just with itself or objects
of the same class, but also with instances of proxy subclasses.
Ah! I missed that important point. I had actually tried something
similar to your alternative earlier, but it wasn't working. Now I
understand why. I can update my equals/hashCode implementations so
they will work with proxy subclasses.
Excellent!
Mike