Dependency clashes and incompatibilities can be a real pain, but I'm not convinced (yet) that OSGi's overhead is worth it. Also relevant that 'enterprise' architectures are more likely to get you into dependency trouble - in distributed environments with lots of small, highly modular components, the risk of dependency clashes is lower. Which isn't to say you don't have them, and it's not like you can't benefit from the modularity that OSGi gives you, but I just don't think that the benefits outweigh the costs for many applications.

At the very least, I think tooling would need to progress much further. Stuffing around with manifests and trouble-shooting classpath issues is a drain on productivity. You can afford to take an optimistic approach with something like Maven2, which enables tools which can give you enough information to resolve many problems when they do arise.