Is the ability to plan really so special?
When an animal goes out of its nest, forages for food and then returns, isn't that the same planning we exhibit too? And now add that humans are omnivorous and acted both as pack hunters and as gatherers; suddenly, complexity arises, that requires you to be able to plan not only for yourself, but also as part of your group - these 10 guys will go hunt that mammoth, while these 5 will go gather berries and these 5 will make some new spears. Simply through the requirement for group interaction, you have another mechanism for the development of plans, psychology, morality.
And that's kind of the point, isn't it? Who says our psychology and morality is a direct product of biological evolution? Biological evolution only gave us the tools (a brain capable of forming plans); morality is a social behaviour that evolved alongside, led by intelligent designers (us) - with groups dividing on various issues, some of them surviving, some not; some of them spreading their ideas further, some not. We have long since taken over the reins of our development, even though we still move within certain constraints imposed on us, with various flexibility (eg. the ability to suppress our anger).
I think this is quite apparent when you look at animals bred in isolation or in different conditions; sure, there's some behaviour based on genetics, but it obviously isn't everything.
If by "free will" we define any action that is not the intended behaviour of the original designer, then yes. And it actually does fit the bill relatively well, IMO - it is an emergent behaviour (usually) experienced during unexpected values appearing somewhere in the code. And just like with us, the behaviour is deterministic, and at the same time, pretty much impossible to predict in some cases :D
Multi-threading issues are a nice example - everything works very well in isolation, and breaks down in a real production enviroment.
I don't think you quite understood the article :P
It's incredibly hard to specify things unambigiously. Even in common workday practice, communication problems cause tons of problems; you always have to make assumptions, because absolutely precise definition of everything is extremely wasteful (if it's even possible at all). I cringe whenever someone says "But that's obvious! You should have thought of that automatically!". Obviously, their model of reality (wherein I am aware of that particular thingy) is flawed, since I was not.
That's the largest problem when delegating any work, IMO - we all have different preconceptions, and you can't expect anyone else to share all those relevant to any given task. At least anything more complicated than pure math :D
Don't be silly, that's a terrible job...
Strictly speaking, the long life is probably not a good thing from evolutionary standpoint, since it means more resources are consumed by individuals that aren't reproducing any more. Or maybe the environment is more challenging and thus more conductive to smaller advantages? I know very little about evolution...