The answer, which I eventually stumbled on at:
is that M4As to be streamed over DAAP need to be “fast-start” compatible. A tool called mp4creator exists for Windows, Linux and OS X that can make the necessary change to an M4A file.
The not-particularly-complicated nuts and bolts of this: clients streaming a track over DAAP need info that encoders sometimes only put at the end of the track. If it’s only at the end, some poorer clients (iTunes, Amarok) just won’t play it, while better ones (SoundBridge) will buffer the whole track looking for the info and eventually find it. If there’s a copy of the info at the beginning, it seems to work with any client. “mp4creator -optimize” ensures there’s a copy at the beginning of the track. If the file is local (iPod, Amarok lib, iTunes lib) then the player can just seek to the end, so the copy at the start isn’t required (but doesn’t hurt).
I hope this saves someone some time 🙂