Hi Hans,
after the change for \defineheadplacement i suggest to remove the parameters from \definelistplacement too.
\unprotect
\unexpanded\def\definelistplacement
{\dodoubleempty\dodefinelistplacement}
\def\dodefinelistplacement[#1][#2]%
{\doifnextbgroupelse
{\dodefinelistplacementyes[#1][#2]}
{\dodefinelistplacementnop[#1][#2]}}
\def\dodefinelistplacementyes[#1][#2]%
{\dodefinelistplacementnop[#1][#2]##1##2##3}
\def\dodefinelistplacementnop[#1][#2]%
{\setvalue{\@@dodolistelement#1}%
{\doifelsenothing{#2}
{\getvalue{\@@dodolistelement\v!command}}%
{\executeifdefined{\@@dodolistelement#2}{\getvalue{\@@dodolistelement\v!command}}}%
\setvalue{\??li\currentlist\c!command}{\getvalue{\@@dodolistelement::#1}}}%
\setvalue{\@@dodolistelement::#1}}
\protect
\definehead[sectiona][section]
\definehead[sectionb][section]
\setuplist[sectiona][alternative=ListA,before=\blank,after=\blank]
\setuplist[sectionb][alternative=ListB,before=\blank,after=\blank]
\definelistplacement[ListA][none]#1#2#3%
{(#1) (#2) (#3)}
\definelistplacement[ListB][none]%
{[#1] [#2] [#3]}
\starttext
\placelist[sectiona,sectionb]
\sectiona{A}
\sectionb{B}
\stoptext
Wolfgang