1) Гугл JS-сом сравнивает реальный размер картинки и тот в котором он отображается.
2) Он обязательно вырезает мета информацию из файла картинки, она в некоторых случаях может быть больше больше самой картинки.
Потом для jpeg, где предусмотрен параметр сжатие/компрессия от 0 до 100, скорее всего ругается если он больше 70-75. Т.к. от 75 до 100 разницы обычно не видно, а размер заметно меньше. (100 это без сжатия)
Для png можно менять битность (8,16,24,32,48,64) изменить, если она используется не эффективно. Битность это количество битов используемое для кодирования одного пикселя от неё зависит количество доступных цветов и глубина альфаканала. Т.е. png8 это 256 цветов без альфы. Параметра компрессии у png нет.
Для GIF это от двух до 256 цветов в заказной палитре, чем меньше цветов палитре тем меньше файл.
Соответственно автоматическая оптимизация для PNG и GIF может быть только путём анализа цвета в каждом пикселе, на лету это муторно и ресурсоёмко. И соответственно этим почти никто не заморачивается.
Так же у этих форматов есть несколько доп опций, которые так же влияют на размер картинки, но не значительно.