4 PWM on ATmega168, why not 6 ???

I'm not sure. The other two PWM pins are controlled by timer 0, which on Arduino is also used to calculate the time returned by millis(). But it might be possible for it to do both. If so, I'll try to support them in Arduino 0006.