Danilo,
A chave para você entender isso é que você deve separar os conceitos de especificação e implementação. Uma especificação diz como determinada "coisa" deve se apresentar, o que deve fazer. Já uma implementação pega essa especificação e diz : eu vou fazer isso que foi especificado dessa forma.
Assim, O JPA é uma especificação (no primeiro vídeo é dito isso). Essa especificação dá orientações básicas de como as coisas devem ser feitas, e nesse contexto, não pode impor tecnologias específicas ou recursos muito específicos, como mapeamentos dinâmicos, pois são relativamente difíceis de implementar.
Mas um framework, que é uma implementação de uma especificação, pode incrementar um pouco as coisas, adicionando recursos omitidos ou melhorando alguma coisa, desde que não viole a especificação.
Veja que se você não usar a especificação JPA, mas trabalhar diretamente com o Hibernate, importando diretamente os pacotes dele nas classe no lugar da JPA, você não terá que fazer esse mapeamento de unidades de persistência.
O problema dessa abordagem é que, se mais tarde você resolver usar outro ORM, como o ObjectDB, você terá que alterar todas as suas classes de entidade, e talvez ter algum problema extra.
Assim, é melhor usar a especificação, criar suas unidades de persistência e garantir que tudo irá funcionar independente do ORM utilizado.