Если у вас нет других ограничений, используйте Tomcat. Это с открытым исходным кодом и бесплатно. JSF прекрасно с ней работает. Я не знаю о CDI, но, похоже, нет никаких причин не использовать Tomcat.
Если, однако, вам требуется функциональность, которая есть в JBoss (например, расширенные функции безопасности), но не в Tomcat, используйте это.
Лично я бы просто выбрал простое решение (например, Tomcat) и только при необходимости переключился на JBoss. Если вы пишете код для Tomcat, в целом он будет работать с JBoss, но не обязательно наоборот, потому что JBoss обладает большей функциональностью.