I'm also suspicious of the idea of pushing a media stream to a Naim device. Fortunately there is a simple test that will often detect if this is really the case.
Play a file (i.e. a track), and press pause, then resume playback. if however there are glitches on resume (ticks, clicks, little bits missing etc.) that suggests that the device doesn't have local control of the stream's position (i.e. the stream is being pushed). However, if it does this several times without a glitch, that suggests that the device actually has control of the stream and is best thought of as "pulling" the stream,
If there are no glitches what the controller may be doing is pushing the playlist (or a reference to a playlist it can read) to the device (this is the normal way that Naim streaming devices work anyway) and the device uses this playlist to create an internal play queue. The device then works through the play queue, requesting the stream from the file using the DLNA server to generate the stream for it. To play a single track like this it creates a play queue with only one entry.
The problem with Chromecast is that most Chromecast apps aren't written to work this way. They don't play a complete playlist as a single entity, instead they treat the playlist as a set of separate individual files. For each file they tell the Chromecast library to open the connection to the Chromecast, open the file, play it and then close its connections when its finished. For the next file in the list they have to start opening the connections all over again. It's entirely possible to play gapless using Chromecast, but it requires the app developer to do more work, so they just don't do it.
It's likely that with some UPnP devices or network set-ups Audirvana is taking a similar approach, telling the device to open and play files one at a time rather than pushing a playlist.