You cannot have compiled modules and call them from another modules without using jsni.
And even using jsni, you cannot pass objects between modules apart from primitive
and Overlay
types.
The best solution I see is that you could export the widgets from ModuleA to javascript using gwt-exporter, this tutorial I wrote some time ago could help you.
But after exporting your ModuleA as a javascript API, you have to wrap this api using jsni in GWT to call it from ModuleB and ModuleC.
IMHO, It's not worth the time you could save in the compilation of your ModuleB when you exclude your ModuleA.
Think that when you export the ModuleA, you have to compile everything although it is not used in ModuleB. Your code in ModuleB will be a mess if you have to interchange info with ModuleA using primitive and overlay types. An many other issues.