I'm less sure about having a configurable default. I don't know if the thrift client should ever be allowed to be the default because some of the operations just do not work via that mechanism.

eg, my previous example of getting the schema for a table which isn't defined by a user, but by the SerDe. 
In this case the metastore doesn't know the schema, but that fact might not always be obvious to the user, so it could lead to broken dreams (and workflows).