What's happening here is that you are accidentally creating the same exception object pattern that spec creates when there is a function spec failure during instrumentation (specifically a root cause ex-info whose ex-data is spec explain data). This is handled as a special case in the error printer.
A workaround would be to avoid that pattern, for example by moving that data out of the root:
(ex-info "Data validation failed" {:invalid (s/explain-data int? :a)})
I will think more about whether we can be more choosy about when this case is triggered in the error printer.