Вы должны.
Фреймворки не имеют представления о том, как вы собираетесь использовать EM, поэтому они не могут закрыть его (за исключением, возможно, финализации, что не гарантируется). Да, их закрытие не приведет к утечке ресурсов.
Идея такая же, как «всегда закрывать java.sql.Connection» (несмотря на то, что некоторые источники данных имеют настройки для автоматического закрытия их по неактивности) или «всегда закрывать сеанс Hibernate».
Кроме того, если вы планируете писать переносимый код, вам не следует полагаться на то, что конкретный провайдер JPA «умен» - другие могут не успеть закрыть EM вовремя.