XCache is technically superior, but different to JRE. Technically both should be able to work together. XCache is a PHP opcode cacher - it can internally cache the output of a large function for example, so it doesn't have to run every time it's request. The advantage it has over a simple page cache would increase as the websites' content becomes more complex and dynamic. XCache is an ideal candidate for any CMS, due to the nature of the extension system - i.e., if you have a module that's used on every single page but the CSS styles vary, XCache will still use a shared cache for every page instance that the module runs on. But JRE will have to cache every page independanty, creating a larger and more messy cache. But with that said, JRE is naturally more compatible and in the case of large, static Joomla sites - would be faster - much like any post-process cache engine would be.
If you have a fancy header module on every page of your site, such as GK PhotoSlide, for advertisement or promoting your own website products, XCache is a big big plus. In cases where you have *many* modules that are repeated on *many* pages, it could be quite possible that JRE will infact cause your server to use even
more resources
Although very unlikely. It's more likely that, if you have many thousands of hits per minute on your very dynamic, module-rich Joomla site, the speed that JRE provides probably will not be as great as if it was running XCache.
As I said though, it'd be good if they could both work together. XCache is naturally more responsive - it'd cache the output of arrays, functions and other routines in the PHP coding 'behind the scenes' with every 1000 hits for example - then when the PHP renders the output HTML, JRE could cache that with every 500 hits. From memory, that's an optimum way of using two differently targetted cache engines
Sorry if that's too technical, but that's pretty much the reason why i've taken special interest in this. I will definately be looking into XCache more thoroughly.