I think you can do this. Your common Component would export some packages/types and expose services invoked by other Components. Therefore you could deploy a new version of the common component and the others would automatically be using its services through the same LC Client SDK calls to perform Service Invocatiion. It is our design intent that these sort of service-to-service calls are loosely coupled. We actually do that a lot in the components that we ship within the LiveCycle Container, especially for SPI Providers.
Could you offer some light on different tags that would be helpful (like export, import, classpath) inside component.xml?
In ES8.2 there was a way to keep all the common lib under server with some property file that refer each component and their respective
lib files so that in all component.xml you can point common location and all component will share same lib/jar files is this true in ES2?
There is a component xml reference here that might help: http://livedocs.adobe.com/livecycle/es/sdkHelp/programmer/sdkHelp/wwhelp/wwhimpl/js/html/w whelp.htm
Also if you have already developed a component in the previous verion of LiveCycle ES then it will still work in ES2 and any special tricks you used for locating dependent jars will probably also work too. As far as DSCs go they still operate the same way and I think what you had working before for loading dependent libs ought to still work.