Diritti e capacità sono molto diversi. In effetti, i diritti legali sono stati inventati in gran parte perché i problemi di accesso non potevano essere risolti applicando capacità tecniche. Certo, mettiamo le serrature sulle nostre macchine e case; ma questo è davvero solo un primo livello di difesa per scoraggiare gli atti di vandalismo casuali - un criminale di carriera non è scoraggiato, e nemmeno molto ostacolato. C'è anche uno strato di convenzioni legali su cui ci basiamo e, tutto sommato, la protezione legale è più importante: non previene gli abusi individuali, ma ha tutto il peso dello stato e della comunità dietro di esso, e quando colpisce, il colpevole sta andando giù.
Applicato alla tua domanda: la legge sul software, scomoda e difficile come può essere, è quasi certamente più importante per proteggere le tue risorse rispetto al controllo degli accessi. È improbabile che tu possa veramente separare parti della tua applicazione in modo che altri possano fare un lavoro utile solo su parti. Nel complesso, è quasi certamente meglio avere un accordo legale in vigore e tenerlo premuto piuttosto che provare a stabilire controlli tecnici che sono probabilmente inefficaci o che ostacolano il loro lavoro.
Se ti stai contraendo in un'area in cui non ti fidi del sistema legale per proteggerti, allora sei praticamente da solo. In una situazione del genere vorrei seriamente riconsiderare se dovresti essere in outsourcing.