Default isolation level for Transaction class in .NET is serializable. The isolation level is one of the properties of the connection that is not reset when the connection goes back to the pool after being disposed. This is why you're observing this.
Best practice for .NET applications using Transaction class is to set isolation level explicitly.