Сжатие удаляет избыточную информацию. Избыточная информация облегчает взлом шифрования. Так что да, шифрование и сжатие совместимы. Я не знаю, есть ли алгоритм, предназначенный для обеих целей.
Да, двоичный файл обычно будет меньше, чем простой текстовый файл. Например, число 34, записанное в тексте, занимает 2 байта (по крайней мере), тогда как в тех же двух байтах вы можете написать число размером до 65000.
То, что делает кодирование «лучше» другого, - это цель, для которой оно предназначено. Если вы оптимизируете по размеру, двоичный файл, вероятно, лучше. Если вы оптимизируете для читабельности или изящного сбоя, текст может быть лучше.