Without disagreeing with your conclusion about the design process, it's useful to note that this situation simply isn't a problem for a conventional configuration management tool.
> On the contrary, generation should be automated.
One could argue that Puppet and Chef are ideal tools for performing that automation.
Sure. But loads of other stuff is. The weight of tradeoffs is clearly against PFCTs here.
One could argue that Puppet and Chef are ideal tools for performing that automation.
Absolutely agree - but not within live infrastructure. Only build.
A mix of two. Use salt/puppet/chef etc to bootstrap a known OS base image to a stable production platform VM for example. Then spawn clones of that. I would do that and I see how it would work very well with testing.
There are many ways to take an image of an environment, not only VMs or snapshots. But if your system image includes 10-100TB, it could be argued that the problem of size really lies in earlier design decisions.
You haven't thought about what and how those initial CSIE configurations are generated.
On the contrary, generation should be automated. In the same way that a service to deploy to such an environment is maintained as an individual service project, the environment itself is similarly maintained, labelled, tested and versioned as a platform definition.