I studied EC a lot, and this is actually one of the strongest success areas for evolutionary algorithms. In general evolutionary computing does far better with real-world, analog, and physical systems than it does with brittle software systems. Other areas of success include mechanical component design, antennas, and materials.
The results must be post-validated of course, since in some cases it will over-optimize to quirks of the Spice or other simulation that's used to implement the fitness function.
Great point - they work well for anything where the optimization surface is relatively smooth, where small changes don't lead to highly suboptimal solutions. In programming, a single character can make a program go from working to not, so the likelihood of "discovering" a valid program is low.
There's a whole subdomain of genetic programming research that centers around the design of evolvable computer languages and instruction encodings. There are some immensely interesting programming languages and instruction sets out there for which this is less true than for ordinary programming. But we still have yet to devise an encoding that is truly analog and smooth... except maybe for really exotic encodings that are too slow to be useful in any practical system. These are sort of like homomorphic crypto-- interesting but too compute intensive to run anything real.
I agree whole-heartedly with the point about post-validation. I work in the field (EC) and the first dozen results you get are usually instances of the algorithm finding where your model or your assumptions are broken. For that reason the "On the Origins of Circuits" link posted in another comment is a really bad example. The results are total garbage because there was no model at all, just an actual physical FPGA. Models are great because they abstract away the effects that you really shouldn't rely on in your design. With out a model, the FPGA optimization gives us an answer that's only valid for one particular FPGA, at a particular point in its lifecycle. In fact, this might be why software optimization breaks --- nobody's figured out how to abstract away the irrelevant effects.
The results must be post-validated of course, since in some cases it will over-optimize to quirks of the Spice or other simulation that's used to implement the fitness function.