Z nějakého důvodu jsem si myslel, že implicitní transakce, ke které se entityManager připojí, byla nová transakce. Ale Hibernace dokumentů stav:"Když vytvoříte správce entity v rámci transakce, správce entity se automaticky připojí k aktuální transakci."
Zřejmě tedy již probíhá jiná transakce (nepřekvapivé) a mé výsledky načítání se mění v závislosti na tom, co již přečetla (protože databáze běží v režimu REPEATABLE-READ.)
V krátkodobém horizontu projdu svůj kód, abych explicitně zahájil transakce begin() všude tam, kde to chybí. Z dlouhodobého hlediska se podívám na Spring Transactions, abych zjistil, jak spravovat transakce spolehlivějším způsobem (jak bylo navrženo v komentářích.)