В общем, вы должны защищать его паролем, если вы не доверяете людям, имеющим к нему доступ. Любой, у кого есть доступ к файлу ключа, может создать сборку со своим строгим именем (в отличие от authenticode, они не выдают себя за вас, но могут загрузить свои сборки вместо вашей)
Что касается сценария с открытым исходным кодом, который вы описали, люди всегда могут скомпилировать код - они просто создают новый файл ключа, но создаваемые ими сборки не будут загружаться сборками, которые пытаются загрузить ваши сборки.