I think the all-in-one approach could work, as you say, for plugins with generic utility. I see many advantages - eg, if I'm writing a test for my plugin that uses idempiere-test, and I find out there is a feature in idempiere-test missing that I need, I can quickly add it if idempiere-test is part of the same workspace. If I'm relying upon it as an external dependency, then I have to switch Eclipse workspaces, add the feature, deploy, switch back to my other Eclipse workspace, then try and use it, then find out that I didn't quite get the feature right for what I needed, wash, rinse, repeat. As I understand it, it is precisely this kind of "wash cycle" that the all-in-one-workspace approach really helps with, and I completely agree. At the moment I'm trying to work with idempiere-test as an external dependency, and I've ended up with snippets in the individual test plugins that are intended (in that mythical future time known as "one day" when everything is supposed to happen...) to become part of idempiere-test, but for short-term convenience have been put where they are. Worse, there is then a temptation to copy them from one test plugin to another when I quickly need them in the other test... then I end up with divergence, and a lack of regression tests for the newly-added features, etc.
However, for more specific in-house plugins, I'm not so sure how useful this will be. I have a mix of plugins - some will be of generic utility that I might light to share via open-source, and others are in-house plugins that I wouldn't like to share. In fact, there is probably a spectrum from generic->specific. However, it is likely that in all cases their workspace setups will have a significant overlap. It's how to best manage that overlap that I'm wrestling with.
Thanks for your insights, Peter - much appreciated.
Blessings,
Fr Jeremy