It's not in the object browser/intellisense in ISHFEx either and you don't think that's hidden. What do you call that?

stdole.IUnknown is hidden in derived interfaces. They don't inherit from oleexp.IUnknown at all. So that leaves the object browser and general intellisense (i.e. libname.? or As ?), where is has identical visibility to ISHFEx.IUnknown (i.e. it's not there).

So since that's as "hidden" as oleexp.IUnknown, and you call that visible, how's about visible?

More formally, things with the hidden attribute are hidden.