Yo creo que dependerá de cada caso.
Puedes no borrar y vaciar las tablas. Me explico:
- Utilizar marcas en vez de borrar
- De vez en cuando pasar un script que te envie las bajas a otra tabla
gemela, pero con otro nombre.
- Utilizar una vista de las dos tablas para manejar historicos.
Por experiencia propia, aunque te digan (los usuarios) que no van a
necesitar esa información, normalmente es mentira. Tu guarda, guarda, pero
en otras tablas. El rendimiento si que decrece cuanto mas grandes sean las
tablas.
Saludos.