Тут скорее разница между внешним DSL и eDSL. У eDSL имеется очевидное преимущество, что при необходимости можно сделать что угодно, используя Тьюринг-полный внешний ЯП. И очевидный недостаток, что таким макаром можно поломать любую семантику и любые гарантии этого eDSL. В строго типизированных языках с контролем эффектов с этим, конечно, получше.
Я совершенно согласен, что в разработке компиляторов гораздо удобнее применять eDSL. В динамически типизированных языках, с другой стороны, строить эти самые eDSL гораздо проще. Некоторые очень мощные компиляторные eDSL до сих пор не могут нормально реализовать в языке со статической типизацией. Тут, в целом, вопрос, какие задачи у нас стоят.