This command is definitely not broken, at least not in A3 1.42. It functions exactly as the description says it does. The reason why the Z value is elevated is because it represents the units torso. When the unit is prone and spotted, the Z value is much less. Here you can see a perfectly working example of this command Talk:getHideFrom#Operation Script Sample.
Description
Returns the Position where object believes the enemy to be. If there is no direct line of sight between the object and the enemy, this position is extrapolated based on the last known position and speed of the enemy. A returned position of [0,0,0] implies that object does not [[knowsAbout[know about]] enemy. If enemy is null it is some position in front of the object or enemy position.
Syntax
object getHideFrom enemy
Parameters:
Returns: Array - ASLToATL representation of the believed aimPos of the enemy object
Examples
Example 1
_pos = player getHideFrom _enemy;
See also
findCover · setHideBehind · isHidden · knowsAbout · forgetTarget