I think that query builders are nice to have and proofs of concept are simple for simple queries, but the moment you need to leave the simple query domain and do something a little more complicated, things start to fall apart. As an example, say you want to store a struct in a database which contains an array field. In Postgres, you could create an array column, while in mssql, you would need a 1NF schema with a separate table for that column, and then you'd associate that column table with the struct table via primary key or something. The query structure in both these cases is drastically different. Other complications, which come up all the time - basic JOINS, window functions, calling sql functions.
ANSI SQL is, unfortunately, a very small subset of the SQL out in the wild, and every DB extends it in some way - I've found that to be a major challenge to deal with. For example, you have that "Returning" option. That'll only work on some DB's (postgres comes to mind) since it's not in the ANSI SQL spec.
-- Marcin