I have seen Rockwell provide some kind of estimation sheet for their Controllogix processors, depending on i/o count, comms channels etc.
But to my honest opinion, the memory requirement is so totally depending on the programming style and functionality, that such a guide is at best a rough guesstimate, and possibly totally misleading.
The best method is to write a small program in your own programming style and with the required functionality, and see how big it becomes. Then extrapolate from that. Not perfect but much better than memory = f(i/o count).
I feel his pain, though - your advice is good when you can write the software before buying the hardware, but usually you have to buy hardware well before that point.
The way I've tended to select S7 processors in the past is as follows:
1. Quick search though old projects done by my company to see what processors they used. This is the best and most reliable guide for selecting processor power as you're using representative hardware and software for a representative task. This is also one reason my company logs the scan time as part of the "finalization" tasks for a project, in order to facillitate this retrospective.
2. Limit myself to no less than 315-2DP (or equivalent) for larger machines or smaller systems. Typically, below this point the value and processing power drops below what I consider useful in the sort of industries I work in (machine scan time no longer than 50ms under any circumstances, and prefer 20ms and under)
3. At the higher end, I generally use an informal scale built up from information in point (1), then round up substantially as I would rather save money elsewhere in my hardware budget if need be.
4. If the customer has similar-scale plants elsewhere, I will ask what processor they used there.
5. For really big or complicated projects, I will consult with Siemens on their suggested processor requirements (although the Rockwells and Siemens of the world typically like to go nuts with the hardware spec when it's someone else's coin)
I know this is a bit heuristic, but as Jesper has already said - processor selection is a bit of a gentle art, especially in Siemensland.