This is pretty conjectural, so perhaps not an appropriate question. If you're of the opinion that I should instead be asking where to pose such a question, please feel free to redirect me.
To my knowledge, working with image files is accomplished by making a series of edits to those files, which are then saved as a new version of the file containing the new state. Although the files themselves may be in a parseable text format (though this is not true in the case of photoshop or GIMP files), and the actions performed may be undoable, I'm not aware of any graphics editing system whose file format is a series of steps performed on a set of source images; it's my understanding that most image file formats are declarative rather than procedural in nature.
My thinking is that storing a set of steps rather than a state would be a very sensible way to save an image file, since it would allow for the saving of a complex history without saving large binary bits multiple times. This would also allow for versioning to be readily managed by SCM systems, even alleviating the need to lock image files as is commonly done for when working on shared media in Photoshop or GIMP.
A local compiled version of the image would serve as a cache: it would be kept updated and be used to avoid having to rebuild the state of the resulting image each time it was opened.
Ideally it would be possible to re-apply various steps in the creation of the final image, or modify the parameters of those steps, with minimal complication. Being able to pull consecutive steps out and parameterize them for future use as macros could conceivably become very convenient to implement.
Is there a useful image editing system which works in a way similar to this? I'm getting a bit annoyed at a perceived lack of versatility in gimp: I want it to work a bit more like vim.
Tips on how to do similar things in GIMP (perhaps using Python-fu) are also quite welcome, though perhaps most appropriately as comments rather than answers.
My use requirements are something that's open source and runs under linux, but I'm interested in hearing about any and all systems which work this way, regardless of licensing or portability status.