I have to agree with jason and john - keep the lifecycle small.
About a year ago I started the maven-it-plugin, with the idea of using any standard lifecycle as a 'forked' sub-lifecycle.
the 'integration-test' phase would run maven (embedded) on src/it/*/pom.xml, where each project could run any lifecycle
they wish - by specifying a packaging. Normally you'd just have some tests in src/test/ which get executed.
This way you can run multiple integration tests, without separate modules (unless you see src/it/* as modules).
I think this, or something similar, is the way to go. We cannot simply grow the main lifecycle any time another usecase comes up.
it's already too big - there should be just one integration-test phase; i don't even see the need for the pre- and post- phases there.
It should be a hook to run a new lifecycle, like a subroutine. That should be flexible enough for anybody.