Attached, finally, is an updated version of the patch which should address the points raised. As the ChangeLog notes, this patch uses a couple of ideas that improve overall performance a bit for Elisp code, since it means a decent C compiler can do better analysis of C code now that Qnil etc. are constants. The constants are visible even to debuggers that don't grok macros, which I think was the main sticking point with the earlier approach.