The code cleanup you made in various classes apart of the refactoring of DatabaseImpl seams to be fine.
At the refactoring of the DatabaseImpl I found a big mistake in GlobalDatabaseImpl. Instead of allowing calls to begin(), commit() and rollback(), all 3 methods should throw a IllegalStateException as they should not be called in J2EE mode. Beside this apparent failure I have not seen others.
If you take a look on what has been the reason that drove you to split up DatabaseImpl into a local and a global one, you will find lots of checks of the transaction mode we are in. The major part of this checks are in begin(), commit() and rollback() as well as in the methods required by the Synchronization interface. In additon the SYnchronization interface is only used in global mode. If you then take a look on EntityTransaction interface of JPA(EJB3) spec you will find that exactly this methods will go into implementations of this interface. As the rest of the methods in DatabaseImpl do not need the seperation into local and gloabl transactions I think it is not required to have 2 different implementations of Database interface. Instead we will have 2 implementations of EntityTransaction interface instead. I spend about 5 hours today to build up a patch with 2 seperate EntityTransaction implementations but did not come to a point that satisfied me. The problem with this is that most of the properties currently located in DatabaseImpl would be duplicated in the EntityTransaction implementations. To resolve this, masiv changes all around would be required that I think we should not do yet but instead after 1.0 final.
According to this considerations and the risc to break things (see your failure in GlobalDatabaseImpl) I like to suggest to create a patch that only includes your code cleanup but without the refactoring of the DatabaseImpl.
Initial patch fro review. All tests complete successfully, though please bear in mind that the tests only test the local side of things.