Agreed on the IzPack approach.
In discussions last week there were a lot of calls for breaking the config into multiple files. I expect we'll keep hearing that, so it's good to think about it. There are a couple problems I see:
1) The file write problem David pointed out. The domain model would have to start carrying around info about what files various pieces came from, plus generally messier parsing and persisting.
2) The logical thing to separate out into an included file is a subsystem config. But that config isn't entirely self-contained. For example, a subsystem could reference a socket-binding config that's in the socket-binding-groups section and a thread group defined in the threads subsystem. Plus it needs to be recorded as an extension. So to be really useful bringing in that subsystem's config isn't a simple matter of an include; it would be more of a merge.