1. Does using XA instead of local transactions have any significant performance penalty?
Almost always this is the case. Reasons for this are varied, but at the very least, the 2PC protocol always adds overhead. This is one of those times where you have to ask yourself...'Do I really, really, really need XA?' Typical XA scenarios are JMS, or as you laid out mutliple DB access in a single transaction.
2) is there anything wrong with deploying database "A" twice to JBoss, once as a <local-tx-datasource> (for the 95% of cases) and once as an <xa-datasource> (for the 5% of cases)?
Not at all. While this is not a typical use case (it's usually either/or), there is nothing wrong with this and given your requirements, seems to make the most sense.
Thanks so much, Weston, for your quick, complete, and helpful reply!