XPath search may be carried out against the index or against the node service.
The [Jaxen] XPath implementation can be used to provide navigation support against the node service. This will allow a full xpath implementation but may have performance issues as it will walk the node structure. It would not allow full text search other then via the index.
The index can provide a subset of optimised XPath performance. The parse should determine if the index xpath version can be used for a particular xpath expression.
XPath against the node service supports simple path based contextual navigation against the node service. It can be used for more if required. It provides a well known abstraction for structured queries. Wrapped as an XresultSet this appears as other queries and allows XPath expressions to be silently optimised.
XPath against the node service will not understand text and comment nodes as these make no sense. It may support additional functions as detailed in JSR 170.
Xpath against hibernate may well cause issues regarding the flushing of the cache. This could be true of any use of the node service.