It wouldn't make any difference putting the colours in variables. Either those variables are going to be used to generate a style block at the start of the xhtml output in which case your pages end up larger or you are going to use dynamic css which will generate a stylesheet identical to the existing one.
I think you can forget your dream of small stylesheets. The current trend is exactly the opposite. There is a new tableless and somewhat minimalistic forum called Vanilla which has stylesheets which are over 40k. The reality is that the less markup you use then the larger and more complex the stylesheets become. I think most people have concluded that heavier but cached stylesheets are a reasonable price to pay for lighter simpler web pages.
You should also remember that the size and complexity of the stylesheet is simply what is required to produce a particular style. If you want a smaller stylesheet then create a simpler style.
You have also got the relationship betwen using tables and the complexity of css the wrong way round. Tableless layouts require more and fancier css than tables.
Personally I'm coming round to the idea of replacing data tables with tableless designs but not because of the reasons usually given. There are now three times as many mobile phones as computers and pretty soon the majority of them will be web enabled. We could be getting to the point where people will expect web pages to work on handheld devices rather than simply hoping they do. The unfortunate truth is that even semantically correct properly marked up data tables look like crap on a narrow format device.