I was always told there is no limit on the number of Routines in a Program, and that only memory constraints would limit them, but there must be a numerical limit, because the system has to maintain an index to the memory location where the subroutine starts.
If it's an 8-bit index (definitely not, since I've seen programs with more than 256 routines), then that limits the number of subroutines to 16#FF, or 256
If it's a 16-bit index then that limits the number of subroutines to 16#FFFF, or 65,536
If it's a 32-bit index (which seems the most likely, since it's a 32-bit machine), then that limits the number of subroutines to 16#FFFFFFFF, or 4,294,967,396
Since the Help actually states "You can have as many routines per program as the controller memory allows", my money would be on the 32-bit index, and you will certainly run out of memory before creating that many routines.