Ehrlich gesagt kann ich dem ganzen nicht mehr folgen.
Ich versuche es nochmal zusammenzufassen:
Eigentlich möchtest du alle Kategorien und Tags einfach hintereinander weg haben, also keine Umbrüche oder ähnliches dazwischen, und willst alles zentriert haben?
Der einzige Unterschied zwischen Kategorien und Tags ist nur die Farbe?
Das bekommt man zwar irgendwie mit CSS hingebastelt, ich verstehe aber gar nicht, warum du dann erst so komplizierten HTML Code erzeugst...
Wäre dann nicht folgendes viel sinnvoller:
<ul class="gw-tags">
<?php the_category(); ?>
<?php $tag_list = get_the_tag_list('<li class="gw-tag">','</li><li class="gw-tag">','</li>');
if(!empty($tag_list)){ echo $tag_list; } ?>
</ul>
(ist jetzt ungetestet, aber so ungefähr sollte das aussehen).
Das Ergebnis wäre dann: Ein <ul> und darin dann sowohl die Kategorien, als auch die Tags als <li>'s. Die unterschiedlichen Farben kannst du dann definieren, weil die Tags zusätzlich die Klasse "gw-tag" haben.