There are no hard rules you can follow as they will be different in every enviroment.
Topology is based on your requirements. Technet some diagrams for some basic deploment methodologies:
You need to determine your fault tolerance requirements in combination with your performance requirements to really determine the optimum configurations.
Some Variables affecting performance:
Services utilized in farm
There are some guidlines in the capacity guides http://technet.microsoft.com/en-us/library/ff608068.aspx , but they are just to get you started. MS may say 10000 users per WFE with 16GB Ram, but that may be lower if you increase your cache sizes and consume more memmory, or higher if you add more RAM, or minimze the services you are using. From a performance standpoint you will really need to do some testing.
The SharePoint Administration toolkit has visual studio module you can use for load testing.
Run that and monitor the counters here and you will start to get to the numbers you can rely on.
The good thing about SharePoint is it is very scalable. If you notice your WFE's are overloaded, spin antoher one up and add it to the farm (assuming load balanced), same for any of the services, if Search is not accetable, determine the bottle neck and add query, crawl, or even dedicated db servers.