The second parameter of \anc:lbl is a counter name, when such is know.
The ‘\@currentlabel’ comes sometimes with font info. Normally, it comes from \refstepcounter in the form of \the..counter-name... In such cases, we can take the counter name which is provided in the parameter of \cur:lbl.
<..cross ref..>+
\NewConfigure{@:currentlabel}[1]{\concat:config\a:@:currentlabel{#1}}
\let\a:@:currentlabel=\relax
\def\cur:lbl#1{{\a:@:currentlabel
<.body of cur:lbl.>\expandafter}\:currentlabel}
-_-_-
<..body of cur:lbl..>
\def\:currentlabel{\par}%
\ifx\@currentlabel\:currentlabel
\def\:currentlabel{\let\:currentlabel=\empty}%
\else \def\:currentlabel{#1}%
\edef\:currentlabel{\def\noexpand
\:currentlabel{\ifx\:currentlabel\empty
\ifx \:@currentlabel\:UnDef \@currentlabel
\else \:@currentlabel \fi
\else
\expandafter\ifx\csname #1:Count\endcsname\relax
\expandafter\the\csname c@#1\endcsname
\else \csname #1:Count\endcsname\fi
\fi}}%
\fi
-_-_-
The \label command of latex invokes \cur:lbl{}. If \:@currentlabel is deined, it is the to be used for the current label. The \ltx@label command of amsmath.sty ignores it.
Whenever \@currentlabel is redefined, we also want to redefine \:@currentlabel. It is redefined in
<..def :currentlabel for make@df@tag..>
\let\cnt:currentlabel=\@currentlabel
\def\:@currentlabel{\ifx \cnt:currentlabel\@currentlabel
\expandafter\the\csname c@equation\endcsname\else \@currentlabel\fi}%
-_-_-
<..def :currentlabel for refstepcounter..>
\let\cnt:currentlabel=\@currentlabel
\def\:@currentlabel{\ifx \cnt:currentlabel\@currentlabel
\expandafter\the\csname c@#1\endcsname\else \@currentlabel\fi}%
-_-_-
<..def :currentlabel for eqnarray..>
\html:addr \edef\cur:th{<.haddr prefix.>\last:haddr r}%
-_-_-
<..def :currentlabel for eqncr..>
\anc:lbl r{}%
-_-_-
<..def :currentlabel for pic-eqnarray..>
<.def :currentlabel for eqnarray.>
\def\cnt:currentlabel{\p@equation\theequation}%
\def\:@currentlabel{\ifx \cnt:currentlabel\@currentlabel
\expandafter\the\csname c@equation\endcsname\else \@currentlabel\fi}%
-_-_-