Hey Ferdi. Good questions, and quite possibly questions not answered anywhere official. Because XBMC is open source, you can actually branch Team XBMC's source whenever you want, make whatever changes you like, and then release those changes yourself, so long as you abide by the GPL. Likewise, you can always make your own addons to be sideloaded and even make your own addon repository to be added to XBMC, as many developers have done.
To add code to Team XBMC's "proper" version of XBMC, initially you must submit code to official members of Team XBMC using Github. That code is then typically reviewed by members who are familiar with that portion of the codebase. For example, Jonathan Marshall would likely review any code you submit related to databases. If he deems your fixes as being useful, non-redundant, well-coded, and ready to be merged, he'll push the code into the master version. If he spots errors, he'll send it back with suggestions.
If you submit enough quality code, you will likely eventually get invited to join Team XBMC and be given write access to the code base. At that point, you will actually be given the reigns to make changes following our pull request rules. Those rules are pretty relaxed, and we try to give each developer as much free reign as we can. However, even after you have write powers, it is considered polite to have somebody else in the field sign off on the code to make sure no mistakes were made. We get pretty sad when code is pushed into master that breaks XBMC.
As far as addons go, for the most part we try very hard to let as many addons as possible through. The most likely reason for us to hold an addon out of the official repo is because it might be broken in some way on submission or otherwise cause XBMC to fail. For that review process, we have a dedicated group of Team members who spend WAY TO MUCH of their free time accepting and reviewing for major faults. It's a thankless job, and they are superstars for willingly taking on the task.