So for every library Foo, it tracks all of the packages that depend on Foo? What if I add my own package -- do I have to tell Foo about mine as well? What if Foo's API changed or breaks my package?
You don't need to tell Foo about your package, the build service will detect those relationships
If you build against Foo, and Foo changes, the OBS will rebuild your package for you
If it breaks your package, the OBS will keep the last version published while you can debug the build failure