On 02/14/2014 03:58 PM, Eli Zaretskii wrote:
Date: Fri, 14 Feb 2014 14:14:22 -0500
From: Michael Kifer <michael.kifer@stonybrook.edu>
CC: drew.adams@oracle.com, 16744@debbugs.gnu.org

But why do we need both the defcustom and the defvar in the macro?

    First, this was written a few years before defcustom came about.
    Second, I haven't followed things for a number of years.
    Is it possible to define permanent local vars using defcustom now?
I don't know.  Anyone?
So, Glen's reply confirms it.  Short of fixing defcustom, the right solution would be to tell defvar to not zap defcustom's doc-string with an empty string, as it was before the change.  Not sure when this change in behavior of defvar happened, but probably within the last year or so.