dd is meant to copy files from a device that needs some fysical blocking (tape/disks) and convert it (could be doing nothing) to save somewhere else.
You can convert block using ebcdic-> ascii or vv.
Copy 10 byte blocks and write them out as 20 byte blocks padded with some character. etc.
'dd if=xxx of=yyy ...' as a mean to copy things doesn't seem to add value. cp doesn't tranform data it just copies a bunch of bytes nothing more or less, dd can do the same and convert data on the mode as well.
see manpage (man dd ) or here:
http://linux.die.net/man/1/dd