Yes. Using single cables to "cascade" multiple Ethernet switches together does create bottlenecks. Whether or not those bottlenecks are actually causing poor performance, however, can only be determined by monitoring the traffic on those links. (You really should be monitoring your per-port traffic statistics. This is yet one more reason why that's a good idea.)
An Ethernet switch has a limited, but typically very large, internal bandwidth to perform its work within. This is referred to as the switching fabric bandwidth and can be quite large, today, on even very low-end gigabit Ethernet switches (a Dell PowerConnect 6248, for example, has a 184 Gbps switching fabric). Keeping traffic flowing between ports on the same switch typically means (with modern 24 and 48 port Ethernet switches) that the switch itself will not "block" frames flowing at full wire speed between connected devices.
Invariably, though, you'll need more ports than a single switch can provide.
When you cascade (or, as some would say, "heap") switches with crossover cables you're not extending the switching fabric from the switches into each other. You're certainly connecting the switches, and traffic will flow, but only at the bandwidth provided by the ports connecting the switches. If there's more traffic that needs to flow from one switch to another than the single connection cable can support frames will be dropped.
Stacking connectors are typically used to provide higher speed switch-to-switch interconnects. In this way you can connect multiple switches with a much less restrictive switch-to-switch bandwidth limitatation. (Using the Dell PowerConnect 6200 series again as an example, their stack connections are limited in length to under .5 meters, but operate at 40Gbps). This still doesn't extend the switching fabric, but it typically offers vastly improved performance as compared to a single cascaded connection between switches.
There were some switches (Intel 500 Series 10/100 switches come to mind) that actually extended the switching fabric between switches via stack connectors, but I don't know of any that have such a capability today.
One option that other posters have mentioned is using link aggregation mechanisms to "bond" multiple ports together. This uses more ports on each switch, but can increase switch-to-switch bandwidth. Beware that different link aggregation protocols use different algorithms to "balance" traffic across the links in the aggregation group, and you need to monitor the traffic counters on the individual interfaces in the aggregation group to insure that balancing is really occurring. (Typically some kind of hash of the source / destination addresses is used to achieve a "balancing" effect. This is done so that Ethernet frames arrive in the same order since frames between a single source and destination will always move across the same interfaces, and has the added benefit of not requiring queuing or monitoring of traffic flows on the aggregation group member ports.)
All of this concern about port-to-port switching bandwidth is one argument for using chassis-based switches. All the linecards in, for example, a Cisco Catalyst 6513 switch, share the same switching fabric (though some line cards may, themselves, have an independent fabric). You can jam a lot of ports into that chassis and get more port-to-port bandwidth than you could in a cascaded or even stacked discrete switch configuration.
From a basic resiliency standpoint and lowest used ports & cables I'd consider the following, if the devices support spanning tree:
Switch A Port 1 -> Router Port 1
Switch B Port 1 -> Router Port 2
Switch C Port 1 -> Switch A Port 2
Switch C Port 2 -> Switch B Port 2
Set spanning tree on for those ports only. This way you'd be fine when(not if) any one of the devices/ports/links fails.
Best Answer
FIRST, if you can spend a bit of money, buy a good, fast 48-port GB switch. You want the faster "backplace" .. basically the speed limit inside the switch. I like this one for less than US$600. Plug everything into it. If the devices on the 100-ft switch are closer than 300 feet, plug them in as well, otherwise use a second switch out there.
This should make your little network perform just fine.
This switch is unmanaged and costs less than US$400. But being able to give the switch an IP and browse to it to see status, speed, etc. is well worth the money if you are having issues.
SECOND, if you just can't spend any money. Make the little GB switch the hub, and connect the three switches and the server into it. This will make the least number of hops between any two nodes. Get a GB card for the switch if you can.
THIRD, the specific answers to the specific questions.
The speed limitation is the speed of the switch ports and the speed of the switches. CAT5e cable will not be a bottleneck in your network.
DO NOT CONNECT SWITCHES WITH MULTIPLE CABLES, and TAKE CARE TO AVOID LOOPS AND MULTIPLE PATHS. Google "spanning tree" for more information about why.
If the network is busy, no. You have slow, cheap switches, so they will pass traffic slowly. Thereform, more hops = slower traffic.
It should not make any difference.
YES, GB in the switch will improve performance even if all of the connections are 100MB. The "backplane speed" (= internal speed) of the switch will be faster, as will any uplinks. And you are really going to want to put a GB card in the server at some point.
Good luck.