C ++ компиляторы в настоящее время действительно ДЕЙСТВИТЕЛЬНО умны. Основные оптимизации происходят на макроскопическом уровне. Даже пример Блендера, удаляющий неиспользуемые переменные, не нужен, так как оптимизатор все равно их удалит.
Запутывание не делает ваш код умнее, оно не меняет алгоритмы, не вводит динамическое программирование или что-то в этом роде.
Я не понимаю, почему вы этого хотите. В случае скомпилированных языков вам не нужно отправлять исходный код, вы можете, при необходимости, отправлять заголовки и библиотеки, но они не предоставляют подробности реализации.