I've happened to develop a module in Drupal and due to some seeming View limitations had to use custom SQL. This ran me into some problems with node revisions and I came to conclusion that in Drupal it's best to use its native methods for working with any data. Otherwise, data integrity problems may arise.
And even with desire to optimize SQL queries in Drupal apparently this should be done in rare cases for real bottlenecks.
What are you experiences related to this dilemma - direct sql queries vs. Drupal modules/functions ?