I soppse it's all down to taste, but for me flat SQL just gives less issues, especially for complex query's. For simple query's I often use params.
lets you dump all the SQL that is being sent to the database..
Looking in sqldb.pp, it appears it just logs the SQL & not the params. And even if it did log the params when I paste the SQL into say a DB Workbench, I'm then going to have to type all params into the parameter dialog box that appears. Plain SQL I can just paste and execute.
There is also compatibility reasons, some DB's will say allow you to sort on a param, some won't. Some might allow you do a conditional expression on a param, some won't. etc. unfortunately param's are DB specific.
And like I say, logging is very simple. eg. Log(theSQL.Text); or memo1.Text := theSQL.Text; pasting the text form these will give you the exact Query & fake Params to reproduce the result.
The chances are also if you developing a product to work with multiple DB backends, your likely dynamically generating your SQL anyway. As the Standard in (SQL) isn't always standard.