как выяснилось после анализа — не сохранять ESI и EDI в экспортированых процедурах нельзя: кодоген считает, что они сохраняются, и после вызова экспортированой процедуры не изменились. исправлять кодоген в этом плане можно, но я не хочу пока (время не пришло), поэтому просто вернул всем экспортированым процедурам обратно флажок callback. я потом это переделаю, но пока пусть всё будет как было.