You are correct - if the entities are retrieved within a valid transaction then any changes to those objects will be persisted when the transactions ends.
You should safely be able to remove those calls, but make sure you
test all the functionality once removed as transaction configuration can often be done incorrectly, and if explicit merge calls were being used you may never have known.
You should remove them as this isn't really what the merge() functionality was designed for - its purpose was to handle merging of detached entities. Care should be taken when using merge - and if you wish to continue using the entity after merging you should make sure you reset it:
x = em.merge(x);
if you don't then x will often be unusable after merge has occured and you will likely see strange results.