Consider:
\documentclass{article}
\usepackage{xspace}
\begin{document}
(something\xspace)
[something\xspace]
\{something\xspace\}
\end{document}
Or more to the point:
\documentclass{article}
\usepackage{xspace}
\newcommand{\something}{something\xspace}
\begin{document}
(\something)
[\something]
\{\something\}
\end{document}
Either of these yields:

So the question is, why does \xspace produce a space before ] and } but not )? I find this very annoying. I would much rather it produces no space in any of these three circumstances. I know I can get rid of the space by using \xspace{} or \something{}, but it sort of defeats the purpose, which is primarily to define my own macros so that I don't need to think about whether I need {} afterwards, and can just use the macro as if it were a word.
Do people consider this a bug? And if so, how should I report it?
