Да, это нормально, т.к. функции внутри объектного файла уже защищены от реверсирования с помощью псевдокода. Выбирая свои функции, вы тем самым усиливаете автозащиту, позволяя встраивать проверки ключа в ветки вашего приложения. Возможности автозащиты на этом ограничиваются.
Далее, рекомендуется использовать Guardant Armor. В этом случае движок на сервере распознает наш объектный файл в вашем приложении, и преобразует его вместе с кодом приложения в псевдокод. Псевдокод шифруется на электронном ключе, и будет расшифровываться блоками по мере выполнения, при этом в памяти никогда не будет всех блоков сразу (защита от дампа). Плюс нельзя будет поставить точки останова на API внутри приложения, и т.д. Т.е. полноценная защита с помощью виртуальной машины с привязкой к ключу. Является самым стойким автоматическим средством на текущий момент.