The example below documents the problems. In short, \definelabel suppresses paragraph indent when the label is at the beginning of a paragraph and fails to print the label or generate references with alternative=inmargin (or inright, or inleft) when in a footnote.
\defineenumeration fails to work in a footnote.
\setupindenting[yes,small]--
\definelabel [ID][
%\defineenumeration[ID][
text=,
after=,
before=,
headcolor=red,
alternative=inright,
]
\starttext
\starttitle[title={Label testing}]
\startsubject[title={Problems with \tex{definelabel}}]
This is a test. It is only a test.
\ID[id1]This paragraph should be indented, with an ID number
in the margin. When \tex{ID} is placed at the beginning of the
paragraph, as it is here, the paragraph is not indented.
This paragraph has a footnote.\footnote{%
\ID[id2]The ID number is not printed in the margin with
{\tt alternative=inright}, {\tt alternative=inmargin},
or {\tt alternative=inleft}. Without any {\tt
alternative} the ID number is printed where the macro
appears. The positioning is unsatisfactory using {\tt
alternative=right}.%
} The footnote has an ID number which should be printed in the
right margin.
This \ID[id3]paragraph has an ID, but it is not at the beginning
of the paragraph and the paragraph is properly indented. The
value of the ID number indicates that \tex{ID} in the footnote
of the previous paragraph incremented the associated counter,
but the failure of the references (\tex{in} and \tex{at}) to id2
suggests that there are other problems.
\dorecurse{3}{
ID id#1 is \in[id#1] and is on page \at[id#1].\par}
References for footnotes are generated without \tt{alternative=}.
\stopsubject
\startsubject[title={Problems with \tex{defineenumeration}}]
When \tex{definelabel} is changed to \tex{defineenumeration},
the example fails to compile. It does not properly handle
the \tex{ID} in the footnote, complaining of an extra \} or
forgotten \tex{endgroup}.
\stopsubject
\stoptitle
\stoptext
Rik