fix (recur) for (fn) with (& rest) that is not 21 args

must of had a brain fart and not realized this.

also fix a rare edge case which could occur when a function have
multiple (recur), each with different number of arguments).