Why not? My guess at the reason it was separated was that it was written before begin-for-syntax was supported and thus a separate module was the only way to support sharing syntax classes across macros.