\item[foo]\label{foo} will not place a correct label, neither for the reference itself nor the linking if hyperref is used, since no counter is involved with the \item[] version of \item.
A possible solution is define an explicit \@currentlabel, then apply \label, thereby faking the usage of some counter.
The package crossreftools provides \crtcrossreflabel for such occurences. The optional value is the label name. However, since \item[...] is used, {\crtcrossreflabel{}[]} has to be applied in order to protect the []. The correct hyper anchor is ensured with \phantomsection inside already.
I've provided a simple inline method with \optionaldesc with \phantomsection which basically the same behavior as \crtcrossreflabel,
\documentclass{article}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage{crossreftools}
\makeatletter
\newcommand{\optionaldesc}[2]{%
\phantomsection
#1\protected@edef\@currentlabel{#1}\label{#2}%
}
\makeatother
\begin{document}
\section{Foo}
\clearpage
\begin{enumerate}
\item[{\crtcrossreflabel{(A)}[hyp:a]}] foo
\item[\optionaldesc{(X)}{hyp:x}] bar
\item[{\crtcrossreflabel{(G)}[hyp:g]}] foo bar
\end{enumerate}
\clearpage
Now referencing to hypothesis \ref{hyp:a}, \ref{hyp:x}
and \ref{hyp:g}
\end{document}

\item[foo]does not set\@currentlabelso there is nothing to reference there – Dec 11 '17 at 17:15\@currentlabelby hand on those item instead of redefining the behaviour of\item. – Pece Dec 12 '17 at 12:10\href... It is an option too if you do manual all the work needed – koleygr Dec 12 '17 at 12:15\refcommand (it is a collaboratively written document and I'm ok with tweaking the definition of the labels but other users shouldn't have to know it just to cross reference those labels). – Pece Dec 12 '17 at 12:18