It's greatly improved with XBMC 13.0+, which included a bunch of optimizations to make XBMC on the RPi more bearable. Go through the XBMC Raspberry Pi wiki page to turn off things that waste CPU (like the RSS ticker). It also helps to use rpi-config and select the modest overclocking option (the one that doesn't change any voltages). XBMC is very smooth after doing those things.
The only issue I still have is that the wifi dongle I attached to the RPi can only pull 10Mb/s. I hear this is due to lack of power provided by the RPi to its USB ports and that it can be mitigated by using a powered USB hub, but I haven't tried that yet. 10Mb/s is enough to stream SD and some HD, but not all HD. I've tweaked the buffering settings to make this a little more bearable but honestly I usually end up transcoding a lower-bitrate version for the RPi to stream, which is a pain without a UPnP server to do that transparently.