Die Zellen sind innerhalb der Rows immer in einer Reihe. Da hat die Colgroup nicht viel mit zu feiern.
Durch die Colgroup gibst du dem Browser von vornherein bekannt wie groß die jeweiligen Spalten sein sollen. Dadurch verringert sich die Ladezeit, weil der Browser zunächst die Tabelleninhalte einlesen muss um die Breite der jeweiligen Zellen definieren zu können, wenn keine Colgroup definiert ist.
Soweit verständlich?
Nunja. Was hat es mit dem Span auf sich? Ganz einfach: Mit dem Span definierst du die Anzahl der Zellen.
Ein
<colgroup width="250" span="5"></colgroup>"
bedeutet im Klartext folgendes: Ich definiere 5 Zellen mit der Breite 250px.
Und logisch, du hast durch 3 x td's den gleichen Effekt aber dadurch hast du wiederrum keine Ladezeitverringerung.
Gruß