When trying to build a generic interface over specific vendor products or standards, one sometimes is faced with a choice of going with a LowestCommonDenominatorInterface (stick with only features they all have in common), or to give in and go with vendor-specific features to get more features and power. Typical examples include RDBMS and GUI's.
To make such a decision, one must consider the probability of switching to another vendor. Principles such as YagNi and FutureDiscounting come into play.