Да, предупреждение говорит вам, что происходит, потому что то, что происходит, может быть не тем, что вы намеревались. Вот и вся идея предупреждений компилятора.
Компилятор не знает или не заботится о том, какие файлы «действительно нуждаются в EHa» (пока файл не скомпилирован, компилятор не может ничего сказать о файле). Он применяет параметры, которые вы говорите, чтобы применить. И вы говорите ему применить оба, и он говорит вам, что интерпретирует это так, как будто вы хотите, чтобы EHA был применен.
Указание каждого противоречивого флага при вызове компилятора означает , а не означает «пробовать каждую возможную комбинацию параметров компилятора, пока не найдете тот, который работает».