Here’s what I have:
The macro poster defined in its own tiddler:
\define poster(address)
	<img src=" $address$ "/>
\end
The template templateBook, applied to anything tagged with book. It contains the following two entries. The poster macro does not work, the direct <img> works:
<$list filter="[all[current]tag[book]]">
	
	<<poster {{!!src-poster}} >>
	<img src={{!!src-poster}}>
</$list>
The tiddler Winnie the Pooh, tagged with book, with a URL in the field src-poster pointing to the book’s cover.
Using the poster macro directly in the book tiddler does not work when passing it the src-poster field (which I guess is the heart of the issue).