Maybe, it makes sense to make pick/clone optional, and let compiler auto-generate default copy constructor? This legacy move semantics doesn't seem to have much sense when compiler already does good job moving temporary data for you. You still will be able to call "pick". Typing code which is not really necessary is very annoying ...
Well, the idea is to prevent accidental deep copy... In most cases, you want 'pick', but with implicit '=' for deep copy, it is easy to forget.