I think you pretty well have it covered.
It is tempting to write applications so that they are database generic, and can operate on any platform. The sacrifice is all proprietary functionality specific to any individual platform, and for an enterprise application that sacrifice is often dear. Plus, in my 15 years of consulting, I and literally count on one hand the number of applications I have seen that actually used cross-platform capability.