It’s a whole lot of fun, but also thought provoking at the same time: when you give a computer system a goal, and freedom in how it achieves that goal, then be prepared for surprises in the strategies it comes up with! Some surprises are pleasant (as in ‘oh that’s clever’), but some surprises show the system going outside the bounds of what you intended (but forgot to specify, because you never realised this could be a possibility…) using any means at its disposal to maximise the given objective.
This is a really fun set of examples. On the one hand, this is one of the fun things about evolutionary computing (which I’ve mentioned before). You might get a surprisingly creative solution to your problem. On the other: you need to be really careful about how you pick your fitness function, because a genetic algorithm will find a way to game it if one exists.
I tend to be of the opinion that the effectiveness of evolutionary computing is one of the best arguments in favour of biological evolution.