"A form containing a single object evaluates to the object, which means that (1) ==> 1. Even without this added alteration to standard lisp evaluation of forms, we simply write val 1 instead of 1 above, val being the identity function"
Funny; we really are thinking about the same problems. bullet will currently puke if it encounters a lonely ')'. It's definitely sub-optimal. I think your solution of looking for words is the right way to go -- I didn't get around to implementing it though, because at some point I waded neck-deep into semantic analysis, code generation, ASM, invoke dynamic. Compilers really are fascinating creatures :)