А я думаю, что здесь всё просто: файл был определён как опасный по двум критериям - подозрительные функции и редкость или неизвестность Авасту аналогов этого файла. Просто сначала сработал один критерий, потом - второй. Проблемы бы не было, если бы Аваст выдал предупреждение по обоим критериям сразу одновременно, но видимо этого не случилось из-за многопотоковости: для ускорения анализа Аваст проверяет файлы не последовательно критерий за критерием, а одновременно по нескольким. Так получилось, что между этими потоками возникла разница по времени. Выходом был бы принцип "рыболовного крючка" : зацепил - подсекай. Авасту надо научится не останавливать анализ при нарушении одного из критериев, а проверить "пойманный" файл по всем критериям и только потом дёргать поплавок.