Yeah, it's a double edged sword. If you don't fork, your updates can get overwritten. If you do fork, you don't get the updates. Yes, the new Exchange should have a feature that will let you do something like a safe-ish merge.
The git thing works pretty well in Ansible tower. I've seen 200-250 different projects sync'd with github within a single tower. The thing is, there's only load when it's initially cloned. After that, it's just checking the current commit locally and comparing it to the remote commit. If the remote commit is newer, only the deltas are pulled and merged locally. It's just a thought experiment right now, but it's one way that datasource code (which is rarely changed by customers) could be compartmentalized away from datasource settings (which are often changed by customers). It is moot anyway until the Exchange comes out with this feature (since it is much farther down the development path than my solution).