Y aún cuando hay más de un filtro es posible modificar el SQL para ingresar los nuevos filtros 
Depende.
Siempre que esa consulta sea dinámica, y creada/armada en tiempo de ejecución, si. En otro caso no es posible modificarla.
Aquí es bueno hacer mencionar una buena práctica que al menos yo la consideraba implícita: en lo posible hay que llevar las consultas al lado del servidor, aprovechando las vistas y los procedimientos almacenados. De este modo en la aplicación solo tiene lugar una llamada a dichas vistas y SPs. O en todo caso, aprovechar una combinación de consultas dinámicas sobre una vista o procedimiento seleccionable.
Muchas veces uno llena de consultas en los componentes TXXQuery; consultas que son estáticas, fijas... que no se van a modificar nunca en la aplicación; siempre es la misma. En un ambiente cliente/servidor con muchos puestos esto se traduce a que el aplicativo arme y prepare las consultas, las mande a ejecutar y reciba... esto multiplicado por N puestos y M veces al día no es muy bueno. Podría mejorarse si uno usa .Prepare() pero sigue siendo un desperdicio.
Puede mejorarse mucho más si directamente dejamos a estas consultas estáticas como lo son: verdaderamente estáticas en el lado servidor y que directamente la aplicación las use. Nada de preparar, etc.
Lo que pasa es que mi lema va más allá... siempre que sea posible poner a trabajar al motor de la base de datos y no a Delphi, que para eso está hecho 
Por supuesto. Se supone, que en teoría, el motor es lo suficientemente inteligente y bien preparado. Sabe hacer su trabajo de una manera mucho más efectiva que lo que se puede conseguir de forma local... sobre todo en lo que hace a Filtros; que no cuenta con un amplio soporte de todo lo que puede hacer un motor.
Además corríjanme si me equivoco, los filtros son un tanto limitados en su uso, no ??? 
Saludox ! 
Es justo lo que dije yo:
Y además, el uso de Filter es limitado debido a que las posibles condiciones y primitivas que puede aceptar son reducidas a comparación del potente WHERE de un verdadero motor.
No te equivocas. Efectivamente, los filtros que soporta los datasets tiene las primitivas más básicas del lenguaje SQL. No son válidas cosas más complejas como un COALESCE() por dar un ejemplo. Es más creo recordar, no tengo Delphi a mano para comprobarlo, que solo permite LIKE, %, #, *, <, >, <=, >=, '' y se acabó.
Saludos,