Bei V5R4 gibts den Systemcache für sowas noch nicht.
Für wiederholbare Abfragen empfielt sich IMMER auch ein Index, gerade wenn auch noch viele Daten vorliegen (bei 1000 Sätzen ist das auch ohne Index noch schnell).

Ein direkter UDF-Timeout ist mir jetzt nicht bekannt, es könnte aber am Abfragezeitlimit (CHGQRYA) liegen, dass deine UDF stirbt.