Particularly now that some of the PLC vendors are storing the documentation for the program, as well as the actual code, on the PLC. It is *VERY* handy, but it takes MUCH more room than the program!
A PLC will be designed to have enough memory for the programs likely to written for the amount of I/O it can support. So unless you know ahead of time that the program you plan to write will require an unusual amount of memory, any PLC that can handle your I/O will also be able to handle your program.