There are at least three good reasons to have one EM per operation.
If any other process modifies the database (or even if the same process uses JDBC or batch queries to modify the database), the EM will have stale data in its cache. If your EM only lives for the duration of a transaction, you have almost no risk of having to deal with stale data.
If any exception occurs with the EM, then its state is not reliable anymore, and the EM must be closed.
If several threads access the EntityManager, you need one EM per thread because the EM is not thread-safe.
And here's a fourth one: even assuming that everything goes fine always, that only one thread accesses the database, the cache of the EM will grow up an up and will consume memory. You also risk in having an inconsistent object graph in the cache because you forgot to initialize the inverse side of an association. Having one EM per transaction doesn't have this problem.