M42 implementation in Repetier-Firmware

That's a good point. Some "sensitive_pins" can't be changed with "M42" such as heater, stepper motors etc. which is defined in "pins.h"

#define SENSITIVE_PINS {0, 1, ORIG_X_STEP_PIN, [...]}

So if PWM is not available, it falls back to digitalWrite(). Actually, on an Arduino, this is not necessary, because the definition of analogWrite() is

case NOT_ON_TIMER:
default:
	if (val < 128) {
		digitalWrite(pin, LOW);
	} else {
		digitalWrite(pin, HIGH);
	}

as pin output level after analogWrite() on non PWM pins - Suggestions for the Arduino Project - Arduino Forum suggests.

But because Repetier-Firmware works on multiple platforms, this double definition could make sense.