I ran into the same issue, and found it was relatively straightforward to extend egreg's answer to handle extra cases like \crefrange{eq1}{eq2} and \cref{eq1,eq2,eq4}:
\makeatletter
\newcommand{\refcheckize}[1]{%
\expandafter\let\csname @@\string#1\endcsname#1%
\expandafter\DeclareRobustCommand\csname relax\string#1\endcsname[1]{%
\csname @@\string#1\endcsname{##1}\@for\@temp:=##1\do{\wrtusdrf{\@temp}\wrtusdrf{{\@temp}}}}%
\expandafter\let\expandafter#1\csname relax\string#1\endcsname
}
\newcommand{\refcheckizetwo}[1]{%
\expandafter\let\csname @@\string#1\endcsname#1%
\expandafter\DeclareRobustCommand\csname relax\string#1\endcsname[2]{%
\csname @@\string#1\endcsname{##1}{##2}\wrtusdrf{##1}\wrtusdrf{{##1}}\wrtusdrf{##2}\wrtusdrf{{##2}}}%
\expandafter\let\expandafter#1\csname relax\string#1\endcsname
}
\makeatother
\refcheckize{\cref}
\refcheckize{\Cref}
\refcheckizetwo{\crefrange}
\refcheckizetwo{\Crefrange}
Credit goes to egreg for the original solution.
2016 Edit:
I'm not sure why, but this had stopped working for me at some point. I started getting a lot of errors like this again:
Package refcheck Warning: Unused label `{eq:objective}' on input line 30.
For whatever reason (maybe a strange interaction of packages) refcheck was expecting an extra pair of curly braces. That is, it expected \label{eq:objective} to be paired with \wrtusdrf{{eq:objective}}, but the \refcheckize commands were only producing \wrtusdrf{eq:objective}.
To fix this I have now put a matching \wrtusdrf{{...}} along with every \wrtusdrf{...} in the macros. This shouldn't have any negative effect provided that you don't differentiate labels solely with curly braces (please don't do that.)
cleveref's docs)? This should be an easy workaround on a Linux or Mac OS X system. – krlmlr Dec 19 '12 at 23:19sedscripts in between. And you still have the false positives when using compressed references (\crefrange, and\crefwith several labels). – mafp Dec 19 '12 at 23:40