Before 5.10.0 and 5.8.9 the overloading flag was stored on the reference rather than the referent. Despite the fact that objects can only be accessed via references (even internally), the referent actually knows that it's blessed, not the references. So taking a new, unrelated, reference to it gives an object. However, the overloading-or-not flag was on the reference prior to 5.10, and taking a new reference didn't (use to) copy it (prior to 5.8.9). To fix that on 5.8.8 and older, we hook in just after the role application reblessed the instance (thereby changing the overloading state of the passed in reference) and brute force search for the other references to the same object to perform the same change on them.
… which doesn't warn