The rule of thumb for Swap is 2 times memory. You need at least as big as memory
if you expect to use "hibernate." I have 4 GB of memory, and swap is hardly ever
used.
I went overboard with root, allocating 37 GB of my 640 GB hard drive. After nine
months, root is using 7 GB. (I install lots of stuff.) I expect within two years
I will do a "clean" install where I format root, so 37 GB will be plenty. If it
were smaller, it wouldn't make much difference to the size of my /home
partition. (I also gave Windows 7 60 GB, and I basically don't use that at all.)
With a "modern" (large) hard drive, I think 12 GB for root is a reasonable
compromise. If you fill it, that becomes a disaster, so better to have a bit
more than you will actually need.