There's a small bugette in stcreate that I only just (after all these years) found.
ASSIGN holder = REPLACE(holder,idxanalysrecord.cAreaName, idxanalysrecord.cNewAreaName) NO-ERROR. This assumes that all the indexes for a table currently reside in the same area that the table does.
I fudged it to: ASSIGN holder = ' AREA "' + idxanalysRecord.cNewAreaName + '"'.