In the JBoss 3.2.1 documentation it says...
"One long outstanding bug of JBoss is that on a transaction timeout, that transaction is only marked for a rollback and not actually rolled back."
Has this been resolved in later versions? It seems quite serious.