A set containing some strings and some objects doesn't make much sense and if you switch from a set of strings to a set of objects than the way the set is implemented will be the least of your worries. You'll have to change lots and lots of other things. Besides in such a case Tie::RefHash might very well be enough.
You can't presume all future requirements. So any futureproofing is bound to fail.
I doubt any module is as well tested as hash operations.