Really. And when exactly are those figures for? If you can recommend a source, it'd be appreciated.
The Brazilian government census bureau estimates 1.5 million in 1766, and 2.9-3.1 million in 1800, drawn from a bunch of written sources. I interpolated a bit to give 2.5 million in 1790. You also get the same values if you extend the 1840s+ numbers (when proper census takings started happening) backwards.
As for the African populations, I misread a placement of commas - its 10k and 5k respectively for Angola and Mozambique in my estimate, though sources you find through vary enormously, some will have less than two thousand Europeans in the territories right up till the 1880s, others will have forty thousand. Its certainly has been very erratic and at times there would be much larger populations when military operations were being conducted. There just isn't the accurate record keeping in existence, and you have to make estimates.
Well, the main reason the Afrikaans population grew slowly was largely the same as New Amsterdam, or New France, or the European population of Spain's colonies: women. Early colonization of British North America was nearly unique in that it entailed largely families rather than single men. The latter strategy inevitably led to intermarriage with the native peoples, but it also led to an enormous rate of return-migration.
On the Cape in particular, the VOC in OTL actually went as far as actively discouraging and hampering settlement. Given the disease environment, it is extremely reasonable to posit a much faster rate of population growth for this sort of colony.
Uh yes? Thats why I used a much more generous growth estimate than the OTL Afrikaans? Actually Quebec had an even faster rate of population increase than the British american colonies (a heroic 2.5% per year), but started from a much smaller base and immigrant additions. You can find women if your not too picky, but Britain sending four times as many people in the first place as the second ranked emigration source (Portugal) will tell out.