Well is London the capital, because it is the largest city or because London had been the capital since Roman times (which helped the growth of the city). My guess is the latter; and in some of the other cases other towns may just have become larger than the capital.
Well...since Norman times to be accurate. The site of London was largely ignored during Anglo-Saxon time until the 800's. It would increase in commercial importance before the Norman conquest, with Winchester being the virtual capital.