Я шел по этому пути раньше, и это абсолютный кошмар, когда вам приходится работать над «запутанным» кодом, потому что он сильно увеличивает затраты, пытаясь отладить проблему на сервере клиента, когда вы, разработчик, не можете прочитайте код Вы сталкиваетесь с «деобфускаторами», копируете «реальный код» на сервер клиента или любой из ряда других вопросов, которые просто становятся реальными хлопотами для обслуживания.
Я понимаю, откуда вы, но похоже, что у менеджмента есть проблема, и они ждут, чтобы вы внедрили выбранное решение, а не выясняли, каково правильное решение.
В данном случае звучит так, будто это действительно проблема с лицензированием или контрактом. Пусть у них будет код с открытым исходным кодом, но сделайте его частью лицензии, чтобы любые изменения, которые они отправляют, возвращались к вам и были одобрены. Когда вы выпускаете патчи, проверяйте суммы md5 всего кода и, если он не соответствует ожидаемому, они нарушают лицензию и будут соответственно взиматься (и это должно быть намного, намного выше). (Я помню одну компанию, которая позволила нам иметь код с открытым исходным кодом, но ясно дала понять, что если мы что-то изменим, мы «купим» код за 25 000 долларов, и они больше не несут ответственности за какие-либо исправления ошибок или обновления, если мы не купили новая лицензия).