Nos dias de hoje ainda se usa checked exception em EJBs para erros de negócio? Pergunto, pois pra mim hoje só faz sentido checked exception em situações onde se tem certeza que existe recuperação para aquele tipo de erro, ou seja, são erros recuperáveis e se quer ter certeza que em chama vai tratar o erro. Caso contrário faz sentido pra mim ser RuntimeException.
Outra questão é, caso realmente fizesse sentido ser checked exception, eu teria que tratar a transação na mão usando UserTransaction ou existe alguma forma melhor? O fato de RuntimeException tirar o SessionBean do pool gera algum problema de performance ou algo que afete o sistema?