Wouldn't git merge --squash do what you're looking for? It seems like the only way to not get conflicts trying to cherry pick is if you never had any conflicts while you were merging master into your feature branch. "Evil" merges, where you actually have to change code, even if it's just to resolve conflicts, don't tend to replay correctly.
It seems like this should do it:
% git checkout master
Switched to branch 'master'
% git merge --squash feature
Squash commit -- not updating HEAD Automatic merge went well; stopped before committing as requested
% git commit
git merge --squash will just apply the changes without creating a commit. You can then make any final changes you want to and write your commit message for the feature.