Replying to sagaki, but should be relevant to later comment authors too:
There are three points to use GLX_DRAWABLE_TYPE in the source code, glx.c:
glxGetConfig returns GLX_WINDOW_BIT for GLX_DRAWABLE_TYPE.
glxChooseFBConfig returns an error if GLX_DRAWABLE_TYPE is not GLX_WINDOW_BIT.
glxGetFBConfigAttrib returns GLX_PIXMAP_BIT for GLX_DRAWABLE_TYPE.
In my idea, glxGetFBConfigAttrib should return GLX_WINDOW_BIT for GLX_DRAWABLE_TYPE. Or the behaviour does not match with others.
Had a quick look at that code, and it seems to me that:
glxGetConfig() should not handle GLX_DRAWABLE_TYPE at all, based on all manual pages I could find for it.
glxChooseFBConfig() should check whether the value is one of or both of GLX_PIXMAP_BIT or GLX_WINDOW_BIT, as we seem to implement both glXCreatePixmap() and glXCreateWindow() unconditionally with respect to the FB Config.
glxGetFBConfigAttrib() should return GLX_PIXMAP_BIT | GLX_WINDOW_BIT based on the above.