I think because you use a local connector,even if you use prepare,in fact jboss will do nothing in that invoke.
I don't know about third party connectors, but for local transactions of JDBC, the prepare is simply ignored during the XA calls. In fact, the local connection are wrapped by a dummy XA compliant interface. In this manner, transaction management is simplified, everything is XA.
It may be possible that JBoss is doing this across the board for all Non-XA transaction(ie, wrapping it with an XA dummy wrapper).
I haven't looked into the code for JCA since JB3.2.1. Please correct me if it has changed.
Long story short, it should work but don't expect the data integrity during a rollback of either resource.