La razón principal es que no es necesario: no hay ninguna razón real por la que crearía una nueva clave para cada mensaje, porque usar una clave para todos los mensajes es perfectamente seguro con los algoritmos de cifrado modernos. . Si bien no puede usar una clave para demasiados datos, con AES "demasiado" es 256 exabytes (eso es alrededor de 256 millones de terabytes), que es mucho más información de la que realmente usa una sesión clave para. El uso de una tecla para una sesión completa no hace que sea más fácil para un atacante recuperar la clave para sesiones realistas.
No estoy seguro de qué quiere decir con "derivar una clave usando Diffie-Hellman" o "encriptado usando RSA", pero supongo que quiere decir renegociar la clave que envían todos los mensajes (es decir, ambas partes se comunican para negociar una nueva clave, "derivar" es una palabra extraña para usar, porque generalmente se refiere a algo computado en un extremo sin tener que hablar con el otro. La renegociación de una clave para cada mensaje no se realiza porque es una pérdida de tiempo. La negociación de claves lleva unos pocos mensajes de ida y vuelta, y es algo lenta (implica al menos un algoritmo asimétrico, y un rasgo común de los algoritmos asimétricos es que son lentos).
Para las derivaciones , si bien es posible, realmente no hay necesidad de hacerlo y, de nuevo, agrega complejidad. No puede derivar su clave para un mensaje del texto sin formato de ese mensaje por razones obvias (el otro extremo no sabe ese texto sin formato hasta que lo descifra con la clave). Puede derivar una clave única para cada mensaje de una clave maestra (esto es común en los sistemas de procesamiento de pagos), pero no es necesario en las comunicaciones típicas, y no se hace para dificultar la recuperación de una clave de transacción (así se hace que recuperar una clave de transacción no le permite descifrar todas las transacciones).