$XDG_CURRENT_DESKTOP is a list, not a single value. It could be, for instance, Endless:GNOME or Unity:GNOME, something like that. In cases like these, detectDE() in xdg-utils-common.in fails to parse $XDG_CURRENT_DESKTOP properly, since it's only expecting one single value.
This is not really a serious issue now because detectDE() has a fallback to check $GNOME_DESKTOP_SESSION_ID, but that variable is always set to this-is-deprecated nowadays and could conceivably disappear in the future. That could break desktop detection in desktops that want to be treated as GNOME by xdg-utils. It'd probably be a good idea to use a glob to see if GNOME (or any other desktop) appears anywhere in the list in the case statement at the start of detectDE() to avoid this.
Dang, kinda wish I'd thoroughly read the related spec(s) before implementing support for it.
I'll have to think on it a bit, but your glob suggestion sounds appealing.
mentioned in OnlyShowIn/NotShowIn section,
"...If $XDG_CURRENT_DESKTOP is set then it contains a colon-separated list of strings. In order, each string is considered."
...the environment variable $XDG_CURRENT_DESKTOP, which is a colon-separated list of names that the current desktop is known as."