ok,
#1
first about dependencyManagement, I don't see where it will be hard to maintain. In fact, properties can stay and then the property is used inside the dependencyManagement. So, updating a current dependency will also result in updating the property. One gain is that we can remove one line per dependency in any child. (the version element of all dependencies) So me may also lower the length of any child pom.xml. And also, we're sure that people will not introduce a dependency with a different version. So no need to perform checks.
#2
Some people may want to use part of codenvy in their own projects. But using some codenvy artifacts as a dependency doesn't mean that we have to inherit from codenvy maven-depmgt-pom. So the problem that come to these projects are that they want to import a 'coherent' set of dependencies. For example if they import the sdk and platform-api artifacts, they want to be sure that they will match the correct set : not use for example platform api of sdk 3.6.0 while using sdk 3.7.0
So BOM is there for these projects. It defines all dependencies for a given set.
Project will import for example bom codenvy 3.7.0 and it will set all the versions for all artifacts that may correspond : including platform-api version, any plugin versions, etc
And when codenvy 3.8.0 is out, projects have only to update bom to 3.8.0 and all dependency versions are automatically set as well. (with consistency)
Regards,
Florent