I see merit in both sides of this argument, but I thought I'd chip in with some points.
In a previous job I developed banking applications, where all the SQL had to be validated against the ANSI SQL-92 specification to maximise portability, and minimise dependancies on 1 product/manufacturer. It was a nice idea, but in practice we keep hitting brick walls, and implementing database functionality in code, due to the limitations. IMHO it would be difficult to solve many database problems without utilising some of the proprietary functions, effectively breaking portability (a similar argument exists for Java i.e. you can code pure java solutions, but most java shops end up using IBM or BEA extensions, giving up a degree of portability to gain functionality and speed development)
In terms of Dotnetnuke, the standard use of stored procedures has drastically reduced the number of inadvertant SQL injection attacks that plague many other portal solutions. As many developers copy the core-code, the use of strongly typed parameterised procedures as opposed to building dynamic sql, has a pleasent side effect of protecting application developers against inadvertantly coding vulnerable modules
Oh, and their appears to be an effort to generate a MySQL provider @ http://www.dotnetnuke.com/Community/ForumsDotNetNuke/tabid/795/forumid/118/threadid/25896/scope/posts/Default.aspx for those interested.
***edited to fix my mangled grammar***