DABs use Terraform which in turn calls the API anyway. So, I guess it comes down to personal preference of deployment consistency, code maintenance etc. However, from your description of "taking a user's SQL" I'm assuming some sort of real-time application interface that takes the SQL query and builds assets. If so, I would go directly to the API instead of using DAB. If not and it is something about "productionizing" user's SQL queries in a programmatic manner, then DAB's with appropriate scheduled workflows/jobs is the way to go.