Yes, macros can interact in unexpected way when each of them transforms the expression in some way (see here for an example).
Yet, when inserting another macro into its expansion, the outer macro has control over the syntax and just needs to ensure that its valid for the inner one, i.e., that the generated code makes sense and works as expected. In this case, it should be rather straight-forward as the expression is just passed as is:
macro ha(expr)
esc(:(LoopVectorization.@tturbo Base.@. $expr))
end
The only difficulty seems to be that macro names in the expansion are not automatically namespaced like function names, i.e., hygienic. Hence, the need to do this by hand and escaping the expression.