1) Yes, downloaded packages are stored in /var/cache/apt/archives/. You can remove them by running sudo apt-get clean.
From man apt-get:
clean
clears out the local repository
of retrieved package files. It removes
everything but the lock file from
/var/cache/apt/archives/ and
/var/cache/apt/archives/partial/. When
APT is used as a dselect(1) method,
clean is run automatically. Those who
do not use dselect will likely want to
run apt-get clean from time to time to
free up disk space.
2) Packages gets updated over time. When you're notified of new updates, packages have not been downloaded yet (or you must have configured otherwise, and packages are downloaded, but not installed).
If you make your packages information up to date by running sudo apt-get update or pressing Refresh in your package manager, the latest versions of packages will be known to the package manager. When proceeding with the upgrade, either by running sudo apt-get upgrade or by pressing Apply at Synaptic, the latest version of a package will be used. If this file was previously downloaded, that one will be used. If that file was outdated, a new one will be retrieved.
If you look in your cache directory at /var/cache/apt/archives, you'll notice that packages are identified by name and version. For example, I've three different files (versions) of chromium-browser in that directory:
chromium-browser_11.0.696.57~r82915-0ubuntu0.11.04.1_amd64.deb
chromium-browser_11.0.696.65~r84435-0ubuntu0.11.04.1_amd64.deb
chromium-browser_11.0.696.68~r84545-0ubuntu0.11.04.1_amd64.deb
The purpose of this cache is to speed up re-installing applications if needed. You can compare it to your Internet browsers cache, images are only downloaded the first time. In the future, the browser checks at the server whether the image is up-to-date. If so, the cached one will be used. Otherwise, a new one is downloaded rendering the old one useless.