Вопрос интересный и он стоит на одном уровне с шифрованием, которое сейчас используется в HTTPS и протоколах подписи API-сообщений.
Зашифровать, чтобы браузер это скачивал, потом расшифровывал в памяти и запустил - можно. Можно даже подписи в asm.js перегнать и через него сделать запуск всех функций.
Да, это отметёт всех тех, кто пришёл скопипастить и это 95-99%.
Но это не мешает оставшимся 1-5% всё-таки забрать рабочий код, если он будет ОЧЕНЬ интересным. Но с другой стороны: этим 1-5% проще будет самим создать что-то более шедевральное, чем Ваш продукт.
Итог: да, делать нужно, т.к. логика та же, что и с SSL: защита не 100% (как и везде сейчас!), но сложность поиска нужного ключа - высокая.
Вот пример того, как нужно делать)