Hi Andy,
Thank you raising this question, and describing the cases so clearly.
So, I think the possible option that you're suggesting is essentially that if service details change without user interaction (either because the broadcaster changed them, or the receiver performed some service following), then the last slide should not be cleared until it's replaced by a new slide received from RadioVIS for the new service details, or it's determined that RadioVIS is not available for the new service.
I guess the user experience that this will give is that if the user has not interacted with their radio, and the radio is simply trying to keep the same audio service available, then there will be no apparent interruption to RadioVIS - assuming that RadioVIS is available, and quickly shows a slide on the new service.
I wonder whether this behaviour should apply only when the receiver is service following to a service that it believes is identical to the original one, rather than one which might just be related? E.g. falling back from a secondary to primary service, or a soft link.
Also, to clarify, does "it is determined that RadioVIS is unavailable on the "new" service", include the case that RadioVIS support was signalled (via an SRV record), but the Stomp server (or HTTP server for the HTTP transport) does not support that topic?
For the situation where two different FM services on the same frequency, but with different PI codes are seen; I think it's an acceptable risk. As you say, the case where one has working RadioVIS, and the other has signalled RadioVIS, but never actually publishes a slide, is probably unlikely, and is most likely to be indicative of a problem with the RadioVIS service that needs to be fixed anyway.
Finally, I think that this kind of behaviour probably should be specified in a specification - unless anyone can think of a reason not to. It's behaviour that receiver implementers will have to think through, and it's relatively central to the user experience around RadioVIS.
Best regards,
Robin