Jenkins: mercurial scm: clean=false is not working as expected
Seems like --clean is hardcoded into the MercurialSCM Jenkins plugin.

See OP for the link to the culprit code.

I have opened up a ticket on Jenkins jira.