I favor position number 1. The reason: it is a relatively simple solution to what seems a relatively unimportant issue. I think that implementors are free to use a procedure like UNINITIALIZED internally, thus preserving LAMBDA as the sole binding operator. MIT Scheme does just this. The syntax for LETREC (and optionally, LET) provides the user with a means of creating uninitialized variables.