Interesting problem. You've definitely found a bug in the 4GL. That's a nice work around.
In my past experience with Informix 4GL, I've seen a problem where if you were reusing a TEMP table that the 4GL would act just the way you've described.
For example, if you've used tmp_table and dropped it and then, again, used it as in 'select * from table into temp tmp_table', the table wouldn't populate. It's like the drop command is ignored.
What happens if you create the temp table separately and the do something like this:
insert into tmp_table
select * from table
Regards,
Ed