Musisz zrozumieć jedno. Jeśli dajesz w pliku CSS url('obrazek.gif'), a plik CSS wywołujesz przez ścieżkę /files/css/cos_innego, to przeglądarka będzie szukała obrazka w katalogu, z którego wywołany został plik CSS (ścieżki obrazków są relatywne do pliku CSS). A skoro stosujesz mod_rewrite, to przeglądarka widzi plik CSS, jakby był wczytywany z głównego katalogu. Tam też będzie szukała plików z obrazkami.
Masz co prawda jeszcze jedno, inne wyjście. Robisz coś w stylu:
Kod
RewriteRule ^([a-zA-Z0-9_]+)\.(gif|jpg|png)$ obrazki.php?id=$1.$2
W pliku obrazki.php robisz
<?php
header('Content-type: '.$type); // $type musisz ustalić na podstawie rozszerzenia @readfile('sciezka/do/plikow/'.$aktuany_styl.'/obrazki/'.$_GET['id']); // $aktualny_styl, tak jak mówiłeś, przechowujesz np. w sesji
?>
Oczywiście powyższy kod trzeba zabezpieczyć przed ścieżkami w stylu ../../../
2. wyjście -
Redirect 302 w pliku php.
Nie wiem które lepsze - zależy od ruchu na stronie.