А теперь объясните, как тело макроса, вынесенный в программу ничего не ломает, а находящийся в макросе ломается если для ОЛ это одно и тоже и он макросы видит прозрачно ?
Может стоит чинить тогда оболочку ?
на самом деле есть ещё один фокус -"элемент пустышка" (NOP), этим элементом является граница макроса
а когда макрос без "эфемерной оболочки", этой пустышки нет.