You can actually track this down yourself using Cthulhu.jl. Specifically, if you do descend_code_typed(Base.Math._hypot, NTuple{2, Float64}; effects = true), you can see that on line 769 there is a call to Intrinsics.have_fma, which taints the consistent effect bit:
│ @ math.jl:769 within `unknown scope`
│ %134 = Base.Math.Core::Core.Const(Core) (+c,+e,+n,+t,+s,+m,+u,+o,+r)
│ %135 = dynamic Base.getproperty(%134, :Intrinsics)::Core.Const(Core.Intrinsics) (+c,+e,+n,+t,+s,+m,+u,+o,+r)
│ %136 = dynamic Base.getproperty(%135, :have_fma)::Core.Const(Core.Intrinsics.have_fma) (+c,+e,+n,+t,+s,+m,+u,+o,+r)
│ %137 = Base.Math.typeof::Core.Const(typeof) (+c,+e,+n,+t,+s,+m,+u,+o,+r)
│ %138 = h::Float64 (+c,+e,+n,+t,+s,+m,+u,+o,+r)
│ %139 = builtin (%137)(%138)::Core.Const(Float64) (+c,+e,+n,+t,+s,+m,+u,+o,+r)
│ %140 = intrinsic (%136)(%139)::Bool (!c,+e,+n,+t,+s,+m,+u,+o,+r)
└─── goto #16 if not %140 (+c,+e,+n,+t,+s,+m,+u,+o,+r)
To expand on Oscar’s answer, that have_fma call taints consistency due to the presence of multiversioning, where LLVM might compile this function for an architecture version that doesn’t have fma, so Julia’s compiler can’t assume have_fma always returns the same answer.