This pattern normally doesn’t have the effect you intend. This pattern makes those Velocity macros inline, which means that they will be wrapped inside a paragraph. Outputting anything but inline content from a such a Velocity macro makes the output invalid. Therefore, Velocity macros need to have a blank line before and after them unless their content is really inline.
Apart from that comment, I agree with @mflorea.