If you try to use binding operations on plain racket syntax, sometimes they work, and other times, they give the wrong answer, which can be a confusing user experience.
> (alpha-equivalent? #'(lambda (x) x) #'(lambda (x) x))
#t ; right
> (alpha-equivalent? #'(lambda (x) x) #'(lambda (y) y))
#f ; wrong
> (free-identifiers #'(x x))
'() ; wrong
I think it would be better to just error when the input is not DSL-expanded syntax