Movendo alguns dos comentários da discussão para uma resposta, com reformulação e reformatação.
Basicamente, o que se resume é que, a menos que você tenha um caso extremamente extremo, eles realmente não precisam ser "coletados de lixo". Se você nunca os buscar, não importa se eles estão lá ou não.
Veja, os transitórios são armazenados na tabela de opções por padrão. Em uma instalação básica, a tabela de opções terá talvez 100 entradas. Cada transitório adiciona mais duas entradas, mas mesmo se você tiver milhares, elas não afetam a velocidade do site, pois não são carregadas automaticamente.
Na inicialização, o WordPress carrega as opções na memória, mas apenas carrega opções com o sinalizador de carregamento automático ativado. Os transitórios não entendem isso e, portanto, não são carregados na memória. Somente os transitórios que são realmente usados posteriormente terão um custo.
Da perspectiva do banco de dados, a tabela de opções possui índices na identificação da opção e no nome da opção. Os transitórios são sempre carregados com base no nome (chave) e, portanto, as pesquisas para eles são sempre simples, com um único valor de chave exclusivo. Portanto, a pesquisa é O (log (n)) e é super rápida. Com um Big-O de log (n), você teria que entrar nos milhões e milhões de linhas antes que isso se tornasse perceptível. Francamente, a sobrecarga na configuração e desmontagem da consulta, juntamente com a transferência de dados real, é muito mais longa. A consulta em si é executada essencialmente em tempo zero por comparação. Portanto, simplesmente ter linhas extras não utilizadas não afeta nada, mas usa espaço em disco extra.
A indexação em bancos de dados é um desses tipos de idéias que não fazem sentido para pessoas que realmente não entenderam o que está acontecendo nos bastidores. Os bancos de dados são projetados para recuperação rápida de dados desde o início e podem lidar com esse tipo de coisa sem problemas. Esta é uma ótima leitura: http://en.wikipedia.org/wiki/Index_(database )
Agora, a limpeza da maneira mais óbvia (chamando SQL DELETE neles) não os exclui do banco de dados. Apenas os remove do índice e marca a linha como "excluída". Novamente, é assim que os bancos de dados funcionam. Para realmente limpar o espaço em disco, você deve continuar e executar uma OPTIMIZE TABLE posteriormente, e essa não é uma operação rápida. Leva tempo. Provavelmente mais tempo do que vale a pena. Provavelmente não é suficiente para economizar no tempo da CPU, no total.
Se você tiver algum caso que esteja causando uma inserção contínua de novos transientes que não estão sendo usados, será necessário encontrar o problema subjacente. O que está inserindo esses transitórios? Eles estão usando uma chave de alteração ou mutação? Nesse caso, o plug-in ou código que causou isso deve ser corrigido para, basicamente, não fazer isso. Isso será mais útil, porque é provável que o código que não os esteja criando adequadamente também não os recupere e, portanto, faça mais trabalho do que precisa.
Por outro lado, pode haver um caso em que transitórios estão sendo criados para algo como todas as postagens. Isso pode ser perfeitamente aceitável. Eu mesmo faço isso no SFC, para armazenar os comentários recebidos do Facebook. Cada postagem tem um potencial transitório associado a ela, o que significa duas linhas extras por postagem. Se você tiver 10 mil postagens, terá 20 mil linhas na tabela de opções (eventualmente). Isso não é ruim ou lento, porque, novamente, há muito pouca diferença entre 100 e 20.000 linhas, na medida em que os bancos de dados realmente se importam. Está tudo indexado. É rápido como o diabo. Sub-sub-milissegundos.
Quando você começa a entrar em milhões de linhas, fico preocupada. Quando o tamanho da tabela de opções aumenta acima de centenas de megabytes, eu ficaria preocupado o suficiente para examinar melhor. Mas de um modo geral, isso não é um problema, exceto em casos extremos. Certamente não é um problema para nada menor do que algo como um grande site de notícias, com centenas de milhares de postagens. E para qualquer site grande o suficiente para que seja um problema, você deve usar algum tipo de cache de objeto externo e, nesse caso, os transitórios são armazenados automaticamente no local e não no banco de dados.