The idea is that if the backend supports rendering for the source and target syntaxes, it is used and is in charge of returning the conversion in the target syntax. Thus macros are handled transparently.