Oi Adenir,
Basicamente quando você coloca a anotação @Bean, você está dizendo pro Spring que quer criar esse objeto e deixar ele disponível para outras classes utilizarem ele como dependência, por exemplo.
Se a anotação @Bean está no método, é importante que a classe em si tenha alguma anotação que indique pro Spring que a classe deve ser "processada". Pode colocar, por exemplo a anotação @Component na classe em si.
Sem essa anotação o método não é invocado.
Para os parâmetros, ele vai buscar algum bean que satisfaça o parâmetro, e vai dar erro se não encontrar, ou se encontrar duas definições para o mesmo parâmetro. É meio que assim que ele vai saber "qual é o certo".
Um exemplo disso: nesse código que você postou, você estava criando o bean JpaTransactionManager. Se em algum outro lugar você tentar criar um bean que precisa de um JpaTransactionManager, ele vai dar erro da forma como está seu código, pois como você mencionou, o método não foi invocado e por consequência,o bean não foi criado.
Espero que tenha ajudado!