La sintassi di \ifcase è:
`
\ifcase\or \or…\or \else \fi
`
seè un contatore, a d esempio pippo LaTeX vuole pippo o \value{pippo}? cioè
` \ifcase\pippo oppure
\ifcase\value{pippo} oppure
\ifcase{\value{pippo}}
`
Se non ho capito male, LaTeX distingue tra nome del contatore e valore dello stesso, mentre TeX è un po’ ambiguo a riguardo.
Dopo \ifcase TeX vuole un numero e, naturalmente, accetta un registro numerico; se hai dato in LaTeX \newcounter{pippo}, il modo di accedere al registro è di scrivere \value{pippo} che equivale a \c@pippo (che è il nome interno del registro).
Puoi pensare a \value{pippo} come al “numero astratto” contenuto nel registro, indipendente dalla sua rappresentazione in qualche sistema (decimale, ottale, esadecimale).
Nelle tue tre possibilità, la prima dà l’errore “Undefined control sequence \pippo” e la terza l’errore “Missing number”. La seconda è la sintassi corretta (assumendo \newcounter{pippo}).
Ciao
Enrico