Честно говоря, не видим ошибки в этой фразе. Разве что теоретически возможно ее неоднозначное прочтение: тепло и уют подарены окнами или окна подарены теплом и уютом? Рекомендуется избегать такого построения фразы, когда можно перепутать подлежащее и дополнение. Возможно, это имел в виду учитель?
Запятая поставлена правильно: здесь обычный сравнительный оборот. Запятая не ставится, например, внутри сочетаний (не) больше чем, (не) меньше чем, (не) раньше чем, (не) позже чем и т. п., если они не содержат сравнения: Посылка весит не больше чем восемь килограммов (ср.: ...не больше восьми килограммов).
В глаголе толкнуть -ну- — это суффикс со значением однократного действия, он прибавляется целиком при образовании глаголов с соответствующим значением: толкать — толкнуть, стегать — стегнуть, чихать — чихнуть. В некоторых формах глаголов гласная у суффикса -ну- усекается, ср.: толк/н/у, толк/н/ут, толк/н/и. В этих формах суффикс представлен вариантом -н-. Варианты морфем называют морфами. Части слова -ну- и -н- — морфы одной морфемы.
Похоже, что этот вопрос не имеет однозначного ответа. Если трактовать выражение мал (,) да удал как неделимое фразеологическое сочетание (так это сделано в словаре С. А. Кузнецова), то запятую ставить не нужно (ср. ни рыба ни мясо). Если же считать его пословицей или поговоркой (как трактуют его многие другие словари), то запятая нужна, поскольку союз да употреблен здесь в значении но.
Согласно «Большому толковому словарю русского языка» под ред. С. А. Кузнецова, резолюция – письменное заключение, распоряжение должностного лица на деловой бумаге; виза – пометка, подпись должностного лица на документе, означающая разрешение, одобрение, согласие с чем-либо. Иными словами, надпись начальника на документе «Отказать» может быть резолюцией, но не визой.
Слово шарм сочетается со словами, не обозначающими лиц, так же, как и слово очарование. Шарм может иметь улыбка, город, актерская игра и даже, как мы видим, античастицы (А когда есть еще и с-антикварк, это уже частица со скрытым шармом (М. Роговая. К началу Вселенной // Кот Шредингера. 2016)).
Тире ставится, если первая часть бессоюзного сложного предложения обозначает условие совершения действия, о котором говорится во второй части (в начале первой части можно добавить союз если): Любишь кататься — люби и саночки возить. Ср. в других пословицах: Назвался груздем — полезай в кузов. Взялся за гуж — не говори, что не дюж.
Запятая не нужна: при двух однородных членах предложения с повторяющимся союзом и запятая не ставится, если образуется тесное смысловое единство (обычно такие однородные члены не имеют при себе пояснительных слов). Такие смысловые единства образуются словами с ассоциативными (часто антонимическими) связями, что мы и видим в приведенном Вами примере.
Такая логика губительна для правописания. Правила написания не со словами разных частей речи и без того непросты и не нуждаются в дальнейшем усложнении (к тому же искусственном, никак не опирающемся на практику письма). Аналогии с правилами написания не с прилагательными не видим: у Вас в обоих примерах отрицание действия, а не утверждение.
Глагол недоедать употребляется в значении 'есть недостаточно, плохо питаться'. А глагол доедать означает 'съедать до конца', поэтому верно: не доедать борщ ('не съедать борщ до конца').
На разнице в значении глаголов недоедать и не доедать основан юмористический эффект в довольно известном анекдоте советской эпохи. Рабочие пишут письмо в ЦК КПСС: «Мы, пролетарии Нечерноземья, прочитали в «Правде», что негры в Африке недоедают. Нельзя ли все, что они не доедают, присылать нам?»