Hi Fevre,
There are ways to achieve what you want, but I agree with previous commenters who believe it is a mistake. Why do you think that "it would be pertinent to ensure homogeneous versions across sub modules"?
In case your components have the same development and release cadence, it may be a better idea to merge them instead of dully updating all versions simultaneously.
In case what you really want is to run integration tests and deliver a consistent set of components, it may be better to achieve this by picking up specific component versions elsewhere. One place where they can be specified is in feature.xml, but it may be a bit cumbersome to update versions. Another place is a target definition file, in which case you can use JBoss Tools' target-platform-utils to update versions and create p2 repositories. A third place would be to manage it via binary artifact manager such as Nexus.
I cannot think of other uses cases, honestly. However, if you still want to factor out versions from manifest, feature and product files, you can do this. For example, one can use tycho-versions-plugin or version-tiger to set plugin versions, include unversioned dependencies in manifest files, and put dependencies with version numbers in pom.xml, but this would make it difficult to create a valid target platform to be able to code in Eclipse PDE. JBoss Tools' tycho-dependency-plugin may be able to help you here, but why create a problem in the first place?
I've seen this suggestion several times but so far nobody was able to explain me why moving versions out of manifest files was really necessary. In all those cases it was a wrong solution for some other problem.