O CSS dinâmico é bastante trivial e, embora seus aplicativos sejam mais limitados (vendo como o HTML gerado dinamicamente com uma folha de estilo estática resolve a maioria das necessidades do dia-a-dia, e o próprio CSS incorpora alguns mecanismos para obter semi-dinâmica), ' já o vi usado em muitas ocasiões, e eu mesmo as uso sempre que preciso.
Freqüentemente, a parte 'dinâmica' faz pouco mais do que combinar várias folhas de estilo em uma (para reduzir o número de solicitações HTTP) e reduzi-las (para reduzir o uso da largura de banda), mas coisas simples como substituição de variável (por exemplo, usando variáveis para cores usadas em toda a folha de estilos) pode facilitar sua vida. No entanto, como o CSS tem uma sintaxe bastante direta com poucas advertências, um sistema de processamento de texto de propósito geral ou uma linguagem de script como PHP geralmente é suficiente para isso, e é por isso que você não vê muitos sistemas de processamento CSS disponíveis no mercado.
Talvez você os tenha visto na natureza, sem reconhecê-los. Os servidores que enviam scripts dinâmicos geralmente usam a reescrita de URL, para que a URL se torne indistinguível do conteúdo veiculado estaticamente. Isso é necessário porque alguns navegadores (principalmente o IE) contam com extensões para a detecção correta do tipo MIME sob certas circunstâncias, ignorando (ou descartando) qualquer cabeçalho do tipo Conteúdo que você possa ter enviado.
Sobre o cache: as folhas de estilo são recebidas com solicitações GET, e torná-las armazenáveis em cache é absolutamente importante para uma experiência decente do usuário. Você não deseja assistir à página refluir enquanto ela baixa novamente a folha de estilo em cada solicitação. Em vez disso, você deve colocar todos os parâmetros que alteram a saída do processamento da folha de estilo na string de consulta; uma sequência de consulta diferente gera uma URL diferente, o que, por sua vez, causa uma falha no cache; portanto, sempre que os parâmetros forem alterados, a folha de estilo será baixada novamente, mesmo que o cliente armazene tudo em cache. Se você realmente precisa de CSS potencialmente diferente para cada solicitação e depende de efeitos colaterais, considere colocar a parte não dinâmica em uma folha de estilo veiculada estaticamente e atenda apenas as coisas dinamicamente que são absolutamente necessárias para serem dinâmicas.