Based on how the system stores so much of the configuration data in the database I don't see any way currently to get a clean setup without just injected the commands into the database or restoring from a backup. The script version is less fragile but I have never taken it as far as configuring the entire system. I have scripts that get close but cost / benefit has left those scripts short of a fully configured system.
For development setup I use a set of postgres backups. Not fully automatic but restoring a few databases after checking out the project is pretty dead simple (upgrading and creating a new version is not too hard when there is a new version of JIve). It also makes for a nice "are you qualified to develop on this" test LOL
So my only suggestion is using the database restores for a local development setup. For setting up a server a set of scripts for the database can be used to do all the setup but this takes some work and would likely need to be combined with something like puppet or ansible to complete a setup.