JBoss traditionally deals strictly in middle-ware, and so does not offer any true HA services for the database layer. To answer your specific questions:
1) The <ha-tx-local-datasource> & <ha-xa-datasource> perform very rudamentary failover - they only offer failover over new connections. Also, there's no guarantee that the servers in your cluster will all point to the same url at the same time. Additionally, you probably don't want to try to initiate master promotion automatically, since you don't want this to be initiated by multiple servers.
2) When chosing an HA data storage solution, you're going to have to consider the trade-offs between availability (i.e. down time) vs data integrity (i.e. data loss) vs performance. Make sure you familiarize yourself with your options:
Of the options you listed, pgpool-II is probably the best option, since, though it still maintains a single point-of-failure, its point-of-failure does not also house your data. In general, statement-based replication middleware offers a higher level of availability than master-standby replication, and without the potential for data loss. I've not used the Tungsten suite of products, so I can't offer any recommendations either way.
Another option you may want to consider is HA-JDBC (http://ha-jdbc.sourceforge.net). Like PGPool-II, HA-JDBC is statement-based replication middleware, and therefore offers the potential for complete fault tolerance. HA-JDBC differs from pgpool-II, in that instead of requiring a single point-of-failure external process, the logic reside completely within the driver.
HA-JDBC looks very promising. I think I'll start from here and see where it takes me.
Thanks for the comprehensive description. It certainly does help a lot.