А как тогда жить с тем, что у нас одна и та же транзакция может обрабатываться в разных потоках? Если оставить ThreadLocal, то несколько операций в одной транзакции могут и не узнать о существовании друг друга, а надо бы...