Tabelas temporárias geralmente são valiosas quando você tem um SELECT bastante complicado que deseja executar e, em seguida, executa várias consultas sobre isso ...
Você pode fazer algo como:
CREATE TEMPORARY TABLE myTopCustomers
SELECT customers.*,count(*) num from customers join purchases using(customerID)
join items using(itemID) GROUP BY customers.ID HAVING num > 10;
E, em seguida, faça um monte de consultas em myTopCustomers sem precisar fazer as junções para compras e itens em cada consulta. Então, quando seu aplicativo não precisar mais do identificador de banco de dados, nenhuma limpeza precisará ser feita.
Quase sempre você verá tabelas temporárias usadas para tabelas derivadas que eram caras para criar.