Improve efficiency of DO-REST-ARG and make some warnings disappear.

Warnings resulted from "certainty" that one branch of an IF led to
a type violation error despite being dead code.
pvk said this would be difficult to handle in constraint propagation,
so the current patch forces the issue.