The unix cp command is somewhat lazy. It sees a sym link and does not copy the link but rather makes a new copy of whatever file was linked and names it the same as the sym link. On first glance, everything looks OK, but closer examination reveals what were links before CP are now files.
Whenever I run cp -R and wind up with differing sizes, I check for symbolic links that have been converted to copies. I have not noticed a situation where the destination of a cp command gets smaller unless I didn't have read permission on some of the files I was trying to copy.
A more robust method of copying is to use
tar czvf - | tar xzvf
(sorry I don't remember the exact syntax b/c I haven't used this in years, but basically you are creating a tarball and piping it to a command to untar it at the new destination.) more
here...
tar is a lot smarter than cp and links remain links.