Well, recently I've done some work along the lines of procedurally generating the procedures to generate textures; I write a recursive function that can generate a tree of noise modules from which to generate a texture. I've gotten some pretty cool textures this way; but, again, it's all been one-off experimental stuff, and dozens of nice looking patterns have been lost. So today I finally implemented functionality to save and store randomly generated function chains in a library system. I generate the table descriptor from which a module tree is built, and store that descriptor in a directory along with a sample rendered image of the associated texture. I implemented a new module type, "library", which rather than instancing a specific module, will instead look up a descriptor in the library and insert the code for the referenced module chain.
So now, I can iterate a script that generates randomized patterns, then stashes the module descriptors in a library. When I start work on a texture, I can just browse the library until I see something I like, then include it into the module descriptor for the texture. I've had a background process running for a couple hours now, and I've gotten some pretty cool looking textures. And better yet, I "remember" them all and can use them again as needed.