The problem seems to be that a new ESQL function does not appear in a compiled message flow until it is used on a position in the map script that is *a ...
I guess I did not describe my problem as detailed as necessary (my situation is not exactly the same as powerlord's; maybe splitting the thread makes sense!?).