>>(1) you can put a lot of functions in a procedure file and issue a SET PROC TO or (2) you can create a custom class with the same functions.<<
There's a third way. Don't put all the procedures into 1 .PRG, make each procedure its own .PRG. There was (and may still be) a performance hit involved in SET PROCEDURE TO. Further, its probably going to be smaller to compile a dll with only the procedures/functions that are necessary than to compile a dll with a huge .PRG file of which only some procedures/functions are used.
During development, these individual .prgs may slow things a bit (because they have to be found by the OS), but that's a small price to pay.
Also look at
http://fox.wikis.com/wc.dll?Wiki~PRGvsVCX~VFP and
http://fox.wikis.com/wc.dll?Wiki~VFPSetProcedure~VFP