Hi Simon,
I had the same confusion about the answer to this question in
www.ejbcertificate.com and I reported them that the answer is incorrect. But I am not sure whether they corrected it.
Anyway, I think the correct answer is - a javax.ejb.RemoveException will be thrown in both the cases. Because what the spec says about this is the following
Remote Home Interface [Section 6.3.2 p59] Because session objects do not have primary keys that are accessible to clients, invoking the javax.ejb.EJBHome.remove(Object primaryKey) method on a session results in the javax.ejb.RemoveException. Local Home Interface [Section 6.4.2 p60] Because session objects do not have primary keys that are accessible to clients, invoking the javax.ejb.EJBLocalHome.remove(Object primaryKey) method on a session results in the javax.ejb.RemoveException. Hope this helps
Suman