I generally use \newcommand* instead \newcommand whenever it makes sense, to ease error checking if the command doesn't sensibly take multi-paragraph arguments.
Is there a starred version of \DeclareRobustCommand that does the same checking (that it, it makes sure that the arguments to the command are not multi-paragraph)?