Na also, das passt doch. Wie von SlyD schon vermutet steuerst du die Servos mit Eingängen über die internen PullUps an. Bei analogen Servos wird aus dem Signal direkt die Motoransteuerung erzeugt und deshalb wird das Signal belastet. Vermutlich bricht das Signal bei den stärkeren RS2 zusammen:

Code:
void ServoInit(void)
{
	DDRD |= IO_PD6;
	DDRC |= IO_PC4;
	DDRC |= IO_PC6;

	servo1_pos_d=12;
	servo2_pos_d=12;
	servo3_pos_d=12;
}
Vermutlich ignoriert der Kompiler den Block nach dem ;