You'll have a hard time programing that much code, but it's easy to create a large file fast:
Code:
h=FCREATE("dummy.txt")
FCHSIZE(h,2^31-25*1024)
FCLOSE(h)
Add the resulting dummy.txt file to the text files section of a new otherwise empty project, add in an empty main.prg, and build the project. The 25 KB smaller than 2GB size of the text file is there to allow a stub of 24KB any FoxPro EXE has.
I managed a 2GB file size EXE, exactly (size on disk, actual size 1.99 GB). Trying to add this file in twice fails, so the technical limit is exactly 2GB (theoretically it could be 3GB or more, I didn't test for a slightly larger txt file and leave it as an exercise to anybody interested in finding out).
The EXE is also starting and running (include a read events in main.prg, of course). The first start just took very long, but only the first start.
The 2GB EXE size limit is not mentioned in the "System Capacities" help topic, but it doesn't surprise me as other file related maximum sizes are 2GB, too.
Anyway, as you already realized, it's not really a practical limit. Even if you decide to embed files in your exe like a large database, you could do so up to 2GB. It makes more sense to keep data separate, though. You could use a lot of large images for the look of an application, though, and have them all included in a larger EXE.
A slim EXE, of course, is a good goal, but even the large 2GB exe doesn't allocate that much memory when it runs. Just look into details of Task manager.