Wow 300KB is the average. I never would have thought it to be even close.
I was doing a design for a particularly graphic intensive site(the whole page was basically one photograph) and was cringing when it hit 90KB for the page.
I think another factor is the widespread use of javascript frameworks where as in the past most javascript code found on sites was custom for that site.
The best service on that site: http://www.websiteoptimization.com/services/analyze/