Мда. С такими компиляторами глаз да глаз. Стандарты? Не, не слышал. Может они еще и результат функции передают в esp?
На самом деле, ОЧЕНЬ странные ребята: использовать DATA REGISTER для базы стека, в то время как есть специально для этого сделанный BASE POINTER. Тогда имеет смысл и ecx сохранить, раз эти умники решили, что они выше всех стандартов. Или отказаться от лазаруса в пользу компиляторов от вменяемых разработчиков.
Вообще "выяснил экспериментально (немного помучавшись)" - как-то странно звучит. Достаточно дизассемблировать программу, найти функцию и узнать точно. Может такое поведение связано с какими-то по
тусторонними эффектами, а стековый фрейм-таки в ebp?