Good catch; line 24 is fixed.
I put this on enyo.dom because for my use case I'm calculating an arbitrary DOM node that is not represented by a control (it's the target of a tap event inside another control, but the DOM element is injected using innerHTML, so Enyo doesn't have anything built up for it). This may be an extremely edge-case type of scenario, though, which is why I wanted to float the whole idea here (I can always implement this as a utility function just for my project instead of contributing it to core). It is like getBounds, except that its intent is to be useful for positioning things (like temporary floating popups) near elements that may be nested within multiple layers of hierarchy, scrolled content, etc. Attaching the function to Control makes sense to me (just it wouldn't be useful for my individual use-case).
I haven't done any cross-browser testing yet, but I'm not sure if having a hidden ancestor matters much; if an ancestor of the control is hidden, then the control itself isn't visible and can't be interacted with, either, which seems like an unlikely scenario for someone to want to position something near it.
Ian