Здравствуйте, Nuzhny, Вы писали:
N>Очень наглядный пример — это debug и release сборки.
Это как раз наглядный пример того, что не является ABI.
N>ABI у debug будет другой
Не будет, если явно не менять то, что относится к ABI (например, stdcall на fastcall).
N>потому что stl контейнеры по-умолчанию будут иметь другой размер
Это не относится к ABI.
N>Программа упадёт, если собрать exe в release, а dll в debug. Но API же не изменился!
И ABI не изменился. Изменились ожидаемые неявные параметры.