кеш - опциональная вещь.
если модульный дистр грузить с флешки даже без режима copy2ram - флешка не будет изнашиваться. потому что только чтение, запись в tmpfs.
Пересобирать вручную наиболее хорошие программмы - почти бессмысленно. Экономия не соизмерима с трудозатратами. При цене флешки и их объему - экономить на 1 -2 Гб - это просто спортивный интерес. Дистрибутив быстрее существенно работать не будет. Ну будет вместо 1 секунды запускаться программа - 2-3 секунды первый-холодный старт. И что? Последующие старты - мгновенны. squashfs - это блочное сжатие. То есть если модуль squashfs весит 1 ГБ, а нужно оттуда только 1 файлик, то только блок в котором этот файлик находится будет распакован. Другими словами подключив модулей на 10 Гб или на 10 Мб по факту разницы не будет, экономия памяти на расходы - минимальна. А вот перекомпиляция программы с ее оптимизацией - это практически неподъемная задача даже для автора программы - не говоря уже о стороннем разработчике - это требует переписать алгоритм программы.
Поэтому погоня за байтами - ради "быть не таким, как все" - это только спортивный интерес - сборка сама в себе. Стоит автору программы при следующей версии переписать кусок, который спортивным интересом был оптимизирован, как снова надо этот кусок оптимизировать. А оптимизация алгоритма и программы - это очень сложная задача, требующая очень больших знаний архитектуры процессора, размера и количество кешей от версии архитектуры, от предсказаний и других регистро-зависимых и всяких векторных штучек инструкций.
Я нисколько не говорю, что оптимизировать - не нужно. Нужно! Просто это должен делать разработчик, а не тот, кто компилирует программу и не понимает алгоритма самой программы.