It seems to me that need for database agnosticism makes sense for specific types of apps, mostly those to be used in general context and by random stakeholders. However, this is typically not the case for majority of projects which are tailored to specific customers and imposing agnosticism on those may very well lead to inelegant and unoptimized code, not to mention constant mental overhead in trying to achieve SQL standard and extra development if support for multiple vendors is desired.
It looks to me that premature agnosticism is similar to premature optimization - there is no need to do it unless your app really fit a specific niche. DB frameworks may make this easier to some extent, but this is also not universal solution since most of those are several times slower then direct database access and thus may not be acceptable, not to mention the overhead of learning to use and troubleshoot it.
What are your thoughts on it ?
But in most cases we used "special" features where they just made life easier, better or both, a good example of this is back when SQLServer released CDC, we used it heavily for a system we built. Yet, not all competitive DB systems had a direct analog to it at the time. More common examples are some of the stored procedure functions available in SQLServer that weren't in other systems that we used regularly. Any of those could have made a DB porting job a pain in the ass.
Overall though, almost every system I have ever had input on or control over architecture we have hidden the database behind either an API or data layer of some sort that made the application ignorant to how data was stored, accessed and where it was located. The idea behind this isn't that I think switching databases is a normal thing, but more so we could change data location, structure etc all without affecting application design. I've been doing that since the early 90's, it was something I was just ingrained with because when I started writing code all our data was stored in flat files and so our code was the database, so isolation was critical to not affect consumers.