Hi,
it should only be content you are synching back. You deployment process should take care of making sure the code/components is the same across environments.
There are various tools for synching content from prod back to lower environments [0][1][2]. If you are bringing content back to Dev, then I'd say it makes sense to only bring back certain content, no need for everything, so just slices of the content, for which you could use packages
Regards,
Opkar
[0]http://cq-ops.tumblr.com/post/43179911102/how-to-efficiently-copy-large-amounts-of-content
[1]https://github.com/TWCable/grabbit
[2]http://adamcin.net/net.adamcin.recap/