So to try to summarize for the OP.
can a pwm signal be created from any pin on any avr microcontroller
Hardware PWM:- this uses the avr timers to generate the PWM. See http://www.societyofrobots.com/member_tutorials/node/228
. The benefit of hardware PWM is that it is the ONLY way to always get 100% correct PWM (without extra hardware), even with interrupts enabled, and irrespective of whatever else your chip is trying to do. The drawback is that it only works with the specific hardware PWM pins associated with the timer.
Software PWM:- most libraries provide software PWM. WebbotLib, Arduino etc. The benefit of software PWM is that the software allows the PWM to be output on ANY output pin. However: because it IS generated via software then its not 100% reliable. Yes - you can make it 100% by disabling all interrupts and not running any software - but then your board just becomes a servo controller. And thats how many servo boards work. Assuming you are also using the same board for other stuff then here is why it goes a bit off: the software tries to measure the length of the pulse but it is normally oblivious to other interrupts. So the pulse length may be the correct length + the time taken to process all other interrupts that have happened. A 9600 baud serial port will generate less interrupts than say motor encoders. The side effect of all this is that your servos will 'judder'. As you add more and more servos then the refresh rate (every 20ms) comes into play. If your servos don't get a pulse every 20ms then they will become ' floppy' - ie loose their torque. The Arduino default servo code is a good example of this problem whereby the refresh rate is 20ms + sum(all servo pulse lenghts). So the more servos then the lower the refresh rate.
But you can of course compromise. EG a walking robot probably needs exact PWM for the legs (use hardware PWM) - whereas the arm and head movement may only be for effect and so could use software PWM.
Word of caution: you may be tempted to use software PWM for everything since it can use any pin. If you go mad then the cpu could spend 100% of its time generating PWM with no time left to run your program. If thats the case then think about off-loading servo control to a child board (bought or hand made).