That's only one of them, the default palette used by VGA cards. But there's another one, the one used by vt100 terminals and internally by linux. That one has the red and blue bits swapped, like 0=black, 1=red, 2=green, 3=yellow, 4=blue etc. I know this because this second scheme is used by the \e]P palette changer escape sequence. (This is btw another proof why this is not the real color/number correspondence: that's only the deafult palette, you can change it to whatever you like. I've rebound magenta to orange once to display Rubik's cube patterns nicely.) The translation table between the rgb and bgr scheme is color_table in /linux/drivers/char/console.c.
Update: see also Re: What is the Perl Color?.