As happens 90% of the time with me, 5 minutes after I post a question I find the answer. Turns out this is a bug in AS 5.1. If there are any files other than .xml in the WEB-INF of your war, AS will go into this continuous deploy loop. There was a file .faces-config.xml.jsfdia that was placed in WEB-INF when I created the project and when I removed that things went to working as expected (i.e. a single deloyment).
I've got the same
featurewhen configured SEAM project (runtime version 2.2.0) with BIRT facet.
In this case the prj.ear/prj/war/WEB-INF contains 'viewer.properties' file (it is not XML) and this goes to infinite deploy-redeploy LOOP !