Программирование по контракту разве не подойдет? Разные группы договариваются о контрактах, все видят только файл MyCompany.Common.dll, или сорцы к нему, неважно. Никто и никогда не видит код других, билд-сервер не настроен выдавать бинарники, если кто-то из комманды должен получить скомпиленный продукт — он получает заобфусцированную копию, из которой ничего не вытянуть.