We (CS or SE) do tend to do things more complicated than they should be. This has been recognized by many. There is a very interesting article (I think by Martin Fowler, but I can't find it ) about why you can make any aspect of software flexible. But you can't make every aspect flexible. Making one aspect flexible has the cost of increasing the complexity of the software; making every aspect flexible increases the complexity to the point where the software cannot be changed any more.
There is also the YAGNI principle, which is clearly broken by the CS engineer on the king's story.
http://en.wikipedia.org/wiki/You_aint_gonna_need_it