>>2 and
>>3 are correct.
tar just globs a bunch of files into a single file. It's original purpose in the UNIX of the 70's was to save space on reel-to-reel tapes. Every time the tape would stop and then restart, a small space would be wasted. If you'd write a bunch of files, there'd be a lot of space wasted. So
tar comes to the rescue, allowing one to write one big file to the tape and maximize the tape.
Read the XENIX programmers manual to see how the late 70's/early 80's UNIX worked (even though it's XENIX, an early 80's 286 implementation of UNIX, this text has a lot of manuals straight from the PDP versions of UNIX). Everything is in a concise, terse format, in a pre-compressed format if you will. Many of these vestiges live on in today's Linux, BSD, etc. Compression came later, with separate utilites.
But yeah, it's not necessary to compress code that much. But the .tar.gz thing is mostly a tradition, and a way to say "this is defintely for UNIX". Better than those newfangled .bz2 punks, though.