Change the default evaluation implementation to return a copy of the input argument.

This allows us to get rid of a few implementation specs. Test changed to reflect the new behaviour.