xparse
does some heuristics to determine a non-expandable command can be safely used expandably (not in \typeout
, but in \csname
...\endcsname
), and uses the \__cmd_start_expandable:nNNNNn
... I wonder if that is of any practical usage (@JosephWright). I can change the \ShowCommand
code to look for \protected
.