Собственно, главная фишка в том, что можно на любой стадии воткнуть что-то своё (например ещё один свой препроцессор) и обработать код как надо.