Заменив имена функций почти случайными именами, затем изменив шаблоны вызовов для функций и предварительно сжав файл ("сжатие"), вы фактически удаляете все повторяющиеся блоки, которые алгоритм сжатия может видеть и использовать для дальнейшего сжатия файла.
Без повторяющихся блоков в потоке данных алгоритм сжатия не может ничего сделать, чтобы удалить дубликаты блоков, но причина, по которой вы видите увеличение размера файла, заключается в том, что у метода сжатия есть свои накладные расходы, которые он помещает в выходной файл. Компрессор будет иметь словарь "фраз", которые дублируются в файле, а затем сжатый файл по существу представляет собой список поисков в этом словаре, но без дубликатов в файле словарь становится копией исходного файла и поисков все еще там, каждый из которых указывает только на один элемент в словаре.
Это означает, что для уже сжатого файла выходной файл не может быть меньше исходного файла. Вы всегда будете хранить то, что по сути является целым файлом, вместе с таблицей поиска, сообщающей алгоритму распаковки, как восстановить исходный файл.