Ciao,
utilizzare un ORM dietro ad un servizio vuol dire innanzi tutto che dal client ti scordi completamente di una serie di cosine tipo il lazy loading o tipo il change tracking.
Quindi, per rispondere alla tua prima domanda, i vantaggi sono i medesimi, ma restano tutti circoscritti al servizio, che è il confine oltre il quale secondo me dovresti completamente dimenticarti del fatto che hai un ORM o che comunque quelle entity provengono da una base dati.
Per quanto riguarda la domanda sulla cache, così su due piedi non credo ci debbano essere troppe grane nell'utilizzarla con WCF. Googlando qua e là mi sono imbattuto in questo post.
http://blogs.rpionline.com/post/2009/02/How-to-use-NHibernate-and-StructureMap-in-a-WCF-application.aspxProva a vedere se risponde alle tue domande!
m.