Após mudar o extends da classe LivrariaException para RuntimeException, a transação deixa de dar rollback após a exceção, mesmo com a anotação @ApplicationException(rollback=true). Por que isso aconte?
package br.com.caelum.livraria.bean;
import javax.ejb.ApplicationException;
@ApplicationException(rollback=true)
public class LivrariaException extends RuntimeException {
}