I'm analyzing the requirements for a controller system I intend to build around the Arduino platform (if feasible).
Rough specs;
5 PWM out
6 Analogue in
8 Digital in
XBee (to peripheral devices (remote control & display, AC relays etc))
Ethernet (to web server and file storage)
SD Card
16x2 LCD display (no need for special characters)
Considering the amount of pins required by the components (I will try to "mux" as much as possible with 4094 and it's cousins), and the amount of code the components will generate with all the libraries, will the UNO be sufficient or do I need to go larger?
The UNO will support 6 analog in signals and 5 PWM outputs. With the XBee in the mix, using pins 0 and 1, you are left with only 7 additional digital pins for the 8 digital inputs, ethernet shield, SD card, and LCD. You need 5 pins for the ethernet shield/SD card, and they can not be multiplexed. That leaves you just 2 pins for the LCD and digital inputs. If the LCD is a serial version, it will need just one pin, leaving you 1 for the 8 digital inputs.
I think you would be happier to start with the Mega, which has plenty of pins, so no multiplexing is required. You'll save on the multiplexing chips, and can use a cheaper, non-serial, LCD. Plus, there's (lots) more room for code and data.
The ethernet shield doesn't play real well with the Mega, but there are ways to make it work.
The Ethernet shield uses SPI to communicate with the Arduino. On other than the Mega, that involves pins 11, 12, and 13. On the Mega, that involves pins 50, 51, and 52. The shield physically connects to pins 11, 12, and 13. This physical connection needs to be broken, by bending the pins. The physical/logical connection to the appropriate Mega pins then needs to be made.