Sun Unix command clarification

I am reading a Sunsolve document covering moving /var and am confused by one step. What does this command do (in English):

Move into the existing /var directory and transfer all the data to /newvar
# cd /var
# tar cvf - . | (cd /newvar; tar xfBp -)

You go into the /var directory. Then you use tar to create a file containing all its contents (tar cvf - .). You then move into /newvar and unpack the file there (cd /newvar;tar xfBp -).

The net effect is that you've copied all of /var into /newvar. Why they wouldn't do that with just cp -R /var /newvar I'm not sure . . . .

A few reasons off hand I can think of these two:

  1. It is faster.
  2. It carries across hidden files ( dotfiles )

a general paradigm for the recursive directory copying is:

(cd $SOURCE && tar cf - . ) | (cd $TARGET && tar xvfp -)

Won't there be an 'p' while tarring also.