\XeTeXcharclass for glues (including null ones) is 255.
High punctuation spacing in French with XeTeX is based on \XeTeXcharclass and \XeTeXinterchartoks both in polyglossia and babel/frenchb.
As a maintainer of frenchb, I need to check whether a /positive/ glue preceeds one of the ; : ! : characters; checking the \XeTeXcharclass doesn't make a difference between null and positive glues. This is the origin of the bug:
[The lstlisting environment adds "\glue 0 plus 1fil minus 1fil" betweeen every token]
With pdfTeX or LuaTeX, I check the width of the glue and decide whether to add space or not, that's why the bug mentioned above only occurs with XeTeX. A possible fix for XeTeX would be to define a special \XeTeXcharclass, say
but I have no idea of how to put glues with default width 0pt into this class. Thanks for any hint!