Move `argNum` variable into local scope
Replace bytecode when closure does not capture any free variable

Case:
```lisp
(def (sqlist ls)
  (map (^(x) (* x x))  ; <= Pure function creation can be reduced only the first time.
       ls))
```