I'm not a fan of option #1. The problem with 'the minimum' is that there's still guarantee that the minimum won't cause problems. We saw this recently with the commons-logging. Were we to go this route I thing we need to be specific about what's in the classpath that the connector writer gets. #2 seems too complicated to me. Of these I guess I prefer #3.
The new split between translator and resource adapter logic ensures that custom development intended to extend our functionality will just utilize our translator jars (of which there will only be a single copy) and/or would be entirely new JCA development, which would be completely independent of Teiid.
The only issues remaining are about dependency management. If a custom translator extension is introduced for examle, it would be placed with the teiid deployer or the lib, which implies that we only support a single version.